Как получить компонент свинга, чтобы отобразить компонент AWT. (Разделитель SplitPane на панели AWT)JAVA

Программисты JAVA общаются здесь
Anonymous
Как получить компонент свинга, чтобы отобразить компонент AWT. (Разделитель SplitPane на панели AWT)

Сообщение Anonymous »

У меня есть сплит, где правый компонент представляет собой панель с вкладками, а каждая вкладка - Jinternalframe. Эта JinternalFrame содержит панель AWT (эта панель необходима для моего приложения для передачи других вызовов JNI с использованием нативной ручки). У меня есть непрерывный макет, установленный FALSE в интерфейсе разделения. Теперь, когда я сдвигаю разделитель сплит -панели, он идет за панелью AWT. Как исправить эту проблему Z-Order. < /P>
Пожалуйста, обратитесь к следующему изображению, которое я приложил.
Введите описание изображения здесь < /p>
Теперь Я прикрепляю код. < /P>

Код: Выделить всё

import javax.swing.*;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;
import java.awt.*;

public class SplitPaneExample {

public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("SplitPane Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);

// Create left component
JPanel leftPanel = new JPanel();
leftPanel.add(new JLabel("Left Component"));

// Create right component
JTabbedPane tabbedPane = new JTabbedPane();
JInternalFrame internalFrame = new JInternalFrame("Internal Frame", true, true, true, true);
internalFrame.setSize(400, 300);
internalFrame.setVisible(true);

// Create a layered pane to manage z-order
// Create the AWT Panel
Panel awtPanel = new Panel();
awtPanel.setBackground(Color.CYAN);
awtPanel.add(new Label("AWT Panel inside JInternalFrame"));

// Add AWT Panel to internal frame
internalFrame.add(awtPanel);
internalFrame.pack();
internalFrame.setVisible(true);

// Add internal frame to tabbed pane
tabbedPane.addTab("Tab 1", internalFrame);

// Create SplitPane
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel, tabbedPane);
splitPane.setDividerLocation(200);
// Add splitPane to layeredPane

frame.add(splitPane);
frame.setVisible(true);
});
}
}
Я пытался использовать JlayeredPane для удержания панели SplitPane/TabbedPane/AWT ... но ничего не сработало.
Любые предложения или обход .
Любые предложения по альтернативному способу получить ручку для JNI в этой иерархии также высоко ценится. < /p>

Подробнее здесь: https://stackoverflow.com/questions/794 ... tpane-divi

Вернуться в «JAVA»