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的主要内容,如果未能解决你的问题,请参考以下文章