【问题标题】:GUI form inheritance JAVAGUI表单继承JAVA
【发布时间】:2022-01-21 12:33:43
【问题描述】:

哟,我正在用 Java 设计 UI,但遇到了一些麻烦。假设我们有一个 JPanel 的 GUI 表单,其中包含 4 个按钮、一个 JLabel 和第二个面板。所有用户都应该看到 4 个按钮和标签,但每个用户看到的都是不同的 Jpanel(在其中一个)。如果这只是代码,那将是一个简单的继承,但我似乎无法在JFormDesigner 中找到从另一个面板继承的任何选项。我可以制作一个从另一个表单继承的表单,然后只更改我想要的 Jpanel 还是应该硬编码它?

【问题讨论】:

    标签: java forms swing user-interface


    【解决方案1】:

    您可以让父面板扩展 JPanel,如下所示。

    class OuterPanel extends JPanel {
       JPanel innerPanel;  //update it to show different view
       Button[] buttons;
       Labels [] lables;
    }
    

    这是一个使用 NetBeans GUI 创建的面板。

    public class NewJPanel extends javax.swing.JPanel {
    
        public NewJPanel() {
            initComponents();
        }
    
        private void initComponents() { 
            jPanel1 = new javax.swing.JPanel();
            jLabel1 = new javax.swing.JLabel();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
            jLabel2 = new javax.swing.JLabel();
            //and layout
        }
    
        // Variables declaration - do not modify                     
        private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JLabel jLabel1;
        private javax.swing.JLabel jLabel2;
        private javax.swing.JPanel jPanel1;  //inner panel,
        // End of variables declaration                   
    }
    

    【讨论】:

    • 是的,这就是代码选项。问题主要在表格中。我可以从另一个 Form 继承一个 Form 并更改 innerPanel 吗?
    • 我对 JFormDesigner 不熟悉。但是在 NetBeans 中,当您创建面板时,它会扩展 javax.swing.JPanel。这是因为您在 GUI 构建器中创建的每个面板都是自定义面板。您添加到面板的任何内容都存储在自定义面板中,类似于我上面显示的代码。
    猜你喜欢
    • 2011-08-29
    • 2010-09-17
    • 2010-10-14
    • 2012-02-10
    • 2012-10-30
    • 2017-12-27
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多