GUI表单继承JAVA

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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 构建器中创建的每个面板都是自定义面板。您添加到面板的任何内容都存储在自定义面板中,类似于我上面显示的代码。

以上是关于GUI表单继承JAVA的主要内容,如果未能解决你的问题,请参考以下文章

不断更新 GUI 表单元素,使表单不会挂起

Java Swing 登录表单

我的 GUI 表单后面令人讨厌的空白控制台

Visual Studio 中用于复杂表单的 C++ 可扩展 GUI 窗口

Django表单,表单字段的继承和顺序

如何添加文件选择器以摆动 GUI 表单调​​色板组件 IntelliJ IDEA