Я пытаюсь изменить графический интерфейс.Он содержит GLCanvas, отображающий содержимое JOGL.
Вот код для его настройки:
private void setupWindow() {
this.frame = new JFrame(WINDOW_TITLE);
frame.setSize(width, height);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
menuBar.add(menu);
JMenuItem exitItem = new JMenuItem("Exit");
exitItem.addActionListener(listener);
menu.add(exitItem);
frame.setJMenuBar(menuBar);
}
В настоящее время холст занимает все пространство в окне, кроме менюбар.Я хотел бы освободить место для других элементов управления в окне, таких как кнопки и списки.Как я могу это сделать?
Я попытался вставить следующее, но это не сработало:
private void setupWindow() {
this.frame = new JFrame(WINDOW_TITLE);
frame.setSize(width, height);
// ** inserted the following:
JPanel canvasPanel = new JPanel(new BorderLayout());
canvasPanel.add(canvas);
canvasPanel.setSize(30, 40);
canvasPanel.setVisible(true);
// **
frame.add(canvasPanel);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
menuBar.add(menu);
JMenuItem exitItem = new JMenuItem("Exit");
exitItem.addActionListener(listener);
menu.add(exitItem);
frame.setJMenuBar(menuBar);
}
Это совсем не изменяет внешний вид окна.
Что мне здесь делать?Я не слишком знаком с Java GUI.
Обновление : изменение аргумента конструктора с BorderLayout
на FlowLayout
приводит к исчезновению GLCanvas.