加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在netbeans中默认使用swing或public进行swing控制?

发布时间:2020-12-15 05:10:43 所属栏目:Java 来源:网络整理
导读:我的第一个问题是 – 我们可以将swing控件(如textfield或combobox)公开或在netbeans中受到保护吗?当我们拖动组件中的组件时,代码会自动生成,组件默认是私有的.我们不能在其他课程中使用它们. 第二个是 – 有没有其他方法可以在其他类中使用一个帧的组件?
我的第一个问题是 – 我们可以将swing控件(如textfield或combobox)公开或在netbeans中受到保护吗?当我们拖动组件中的组件时,代码会自动生成,组件默认是私有的.我们不能在其他课程中使用它们.

第二个是 – 有没有其他方法可以在其他类中使用一个帧的组件?

例如 – 在一个框架中,我们只有一个文本字段,一个按钮和一个标签.我们希望在单击按钮时将标签文本设置为与文本字段中写入的文本相同.但代码必须写在其他类中.

package javaapplication10;

import javax.swing.JLabel;
public class NewJFrame extends javax.swing.JFrame {

    public NewJFrame() {
        initComponents();
    }


    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        label1 = new java.awt.Label();

        setDefaultCloSEOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        label1.setText("label1");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,false)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)
                        .addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE,76,javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING,layout.createSequentialGroup()
                        .addGap(100,100,100)
                        .addComponent(label1,67,javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,31,Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(129,129,129))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(134,134,134)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextField1,javax.swing.GroupLayout.DEFAULT_SIZE,javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1))
                .addGap(56,56,56)
                .addComponent(label1,javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(67,Short.MAX_VALUE))
        );

        pack();
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

        label1.setText(jTextField1.getText());
    }
    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE,null,ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE,ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE,ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE,ex);
        }



        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }

    private javax.swing.JButton jButton1;
    private javax.swing.JTextField jTextField1;
    private java.awt.Label label1;

}

我只写过

label1.setText(jTextField1.getText());

但这是在同一个班级.我希望这行可以写在其他类中.
但由于textfield和labell是私有的,我们不能在其他类中引用它们.

我怎样才能做到这一点?

我这样做是为了学习目的.

请帮忙.

解决方法

右键单击component-> properties->代码:

单击Variable Modifiers,选择您想要的.

有没有其他方法可以在其他类中使用一帧的组件?

是,

> 1)classname.variablename> 2)创建类的对象,通过对象调用变量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读