Java Swing 将类动态加载到面板中

标签 java swing jpanel jcombobox

我的程序看起来像这样!

enter image description here

我想让底部根据组合框中选择的项目动态地将框架加载到底部框架中。例如,如果选择第一项,我希望显示 PresentValue.java 文件中的面板。我的想法是,我为每个选择都有一个 java 文件,显示我在其各自的 java 文件中设计的内容。

enter image description here

enter image description here

这两个 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/

相关文章:

java - 无法将 JLabel 添加到 JPanel

java - OddSum 递归练习,不知道如何求和

java - Android Studio Activity之间切换变量

java - 确定单击了哪个 JTable 单元格

java - 如何混合构建 JTree 和 JTable?

尝试更新全局变量时出现 java.util.ConcurrentModificationException

java - 将 JTextArea 中的文本读入 StringBuilder

java - 我无法将 ImageIcon 添加到 JPanel

java - JPanel 未出现在 JFrame 中

java - 将连续显示的 JPanels Swing 到右上角