我的程序看起来像这样!
我想让底部根据组合框中选择的项目动态地将框架加载到底部框架中。例如,如果选择第一项,我希望显示 PresentValue.java 文件中的面板。我的想法是,我为每个选择都有一个 java 文件,显示我在其各自的 java 文件中设计的内容。
这两个 java 文件应该放入我的第一个屏幕截图中的“底部”框中,具体取决于组合框中的选择。
我更习惯 Android 编程,在那里我会简单地从片段调用替换方法来交换加载的片段...在这里寻找类比。
final JComboBox selectorBox = new JComboBox(selection);
selectorBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int selectionID = selectorBox.getSelectedIndex();
}
});
但找不到办法做我想做的事。请解释一下。
最佳答案
对于您拥有的每个 Java 文件,该 Java 文件的输出应该是 JPanel
。不是 JFrame
。
在显示任何内容之前,请执行您拥有的所有 Java 文件。创建所有可能的 JPanel
。
在 GUI 中创建 JFrame,然后使用 JFrame
的删除和添加方法来删除或添加所需的 JPanel
。
这是我的 GUI 之一的示例。
public void updatePartControl() {
Thread thread = new CountdownThread(model, this, displayPanel);
thread.start();
frame.remove(alarmPanel.getPanel());
frame.add(displayPanel.getPanel());
frame.validate();
frame.pack();
frame.setBounds(getBounds());
}
如果显示 JPanel
大于或小于警报 JPanel
,setBounds 方法会重置边界。
您的应用程序应该有一个 JFrame
。您使用多个 JPanel
来创建 GUI。
关于Java Swing 将类动态加载到面板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824993/