Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 在GUI中使用类的实例_Class_User Interface - Fatal编程技术网

Class 在GUI中使用类的实例

Class 在GUI中使用类的实例,class,user-interface,Class,User Interface,使用NetBeans7.4。 我有一个GUI,其中有三个相同的面板和面板中的控件,以及面板的相同处理。 我认为正确的方法是定义一个类并为每个面板创建一个实例。然后,如果我必须更改处理,我会在类中更改它,所有实例都会影响更改 我创建了一个真正简单的版本,在ActionPerformed中正确地执行“处理”。我无法找到一种方法来创建实例,以便每个实例都与适当的面板相关联。我假设我应该使用Netbeans File、New File、Java、Java类在my.program包中创建一个新的类文件My

使用NetBeans7.4。 我有一个GUI,其中有三个相同的面板和面板中的控件,以及面板的相同处理。 我认为正确的方法是定义一个类并为每个面板创建一个实例。然后,如果我必须更改处理,我会在类中更改它,所有实例都会影响更改

我创建了一个真正简单的版本,在ActionPerformed中正确地执行“处理”。我无法找到一种方法来创建实例,以便每个实例都与适当的面板相关联。我假设我应该使用Netbeans File、New File、Java、Java类在my.program包中创建一个新的类文件MyProgram

但是我应该在UI中的什么位置放置“MyProgram upper new MyProgram()”这个类的实例,以及如何将它们“连接”到正确的面板

下面是简单的版本。只有三个面板。每个按钮都有一个左按钮和一个右按钮,并带有一个文本字段,告诉您最后按下了哪个按钮。如何将ActionPerformed区域中的代码替换为相应实例中的方法调用

提前感谢:

******代码如下*******

/* *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。 *要更改此模板文件,请选择工具|模板 *然后在编辑器中打开模板。 */

打包my.myprogram

/** * *@作者皮特 */ 公共类MyProgramUI扩展了javax.swing.JFrame{

/**
 * Creates new form MyProgramUI
 */
public MyProgramUI() {
    initComponents();
}

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */


private void LeftButtonUActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
            jTextFieldU.setText("Left Pushed");
}                                           

private void RightButtonUActionPerformed(java.awt.event.ActionEvent evt) {                                             
    // TODO add your handling code here:
           jTextFieldU.setText("Right Pushed");
}                                            

private void LeftButtonMActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
    jTextFieldM.setText("Left Pushed");
}                                           

private void RightButtonMActionPerformed(java.awt.event.ActionEvent evt) {                                             
    // TODO add your handling code here:
    jTextFieldM.setText("Right Pushed");
}                                            

private void LeftButtonLActionPerformed(java.awt.event.ActionEvent evt) {                                            
    // TODO add your handling code here:
    jTextFieldL.setText("Left Pushed");
}                                           

private void RightButtonLActionPerformed(java.awt.event.ActionEvent evt) {                                             
    // TODO add your handling code here:
    jTextFieldL.setText("Right Pushed");
}                                            



    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new MyProgramUI().setVisible(true);


        }
    });
}


// Variables declaration - do not modify                     
private javax.swing.JRadioButton LeftButtonL;
private javax.swing.JRadioButton LeftButtonM;
private javax.swing.JRadioButton LeftButtonU;
private javax.swing.JPanel Lower;
private javax.swing.JPanel Middle;
private javax.swing.JRadioButton RightButtonL;
private javax.swing.JRadioButton RightButtonM;
private javax.swing.JRadioButton RightButtonU;
private javax.swing.JPanel Upper;
private javax.swing.ButtonGroup buttonGroupL;
private javax.swing.ButtonGroup buttonGroupM;
private javax.swing.ButtonGroup buttonGroupU;
private javax.swing.JTextField jTextFieldL;
private javax.swing.JTextField jTextFieldM;
private javax.swing.JTextField jTextFieldU;
// End of variables declaration                   

}

我正在努力理解您的代码。您应该发布一个更小、更简单的示例,而不需要一堆自动生成的NetBeans内容。然而,根据您的描述,听起来您应该创建一个包含一个左按钮、一个右按钮和一个文本字段的JPanel自定义子类。在构造函数中,它会将两个jbutton和JTextField添加到自身中,并将ActionListeners添加到按钮中,以便适当填充文本字段。然后您将创建其中三个JPanel子类,并将它们添加到主UI中。我希望还有足够的时间。我希望我能包括GUI图像。当你提到“构造函数”时,哪个构造函数?我刚刚创建了JPanel,这与“JPanel的自定义子类”不同吗?我觉得我在这个问题上处于左方。不幸的是,现在您的示例中的代码太少了,如果您尝试运行它,它实际上不会做任何事情。:)但我想我明白你的意思了。总结:是的,“JPanel的自定义子类”与“面板”不同。如果您不知道子类是什么,那么您应该阅读Java中的基本面向对象编程。例如,试试这个。我已经经历过好几次了。在我的一生中,我都无法在那个教程中找到GUI使用类的实例来做一些事情。我想我离理解java太远了。关于创建面板,我只知道使用netbeans从Swing容器中拖动一个面板。对于试图学习的人来说,似乎每个人都有不同的做事方式。因此,没有办法从一个地方拿走一些东西,然后在另一个地方使用这个概念。谢谢你的努力