gpt4 book ai didi

java - 默认情况下,如何使 netbeans 中的 swing 控件 protected 或公开?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:29:53 25 4
gpt4 key购买 nike

我的第一个问题是 - 我们能否在 netbeans 中公开或保护 swing 控件(如 textfieldcombobox)?当我们将组件拖放到框架中时,代码会自动生成,并且组件默认是私有(private)的。我们不能在其他类中使用它们。

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

例如 - 在一帧中,我们只有一个 textfield、一个 button 和一个 label。我们希望将标签的文本设置为与单击按钮时在文本字段中写入的文本相同。但代码必须写在其他类中。

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, javax.swing.GroupLayout.PREFERRED_SIZE, 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.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1))
.addGap(56, 56, 56)
.addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, 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, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, 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());

但这是在同一个类(class)。我希望将这一行写在其他类(class)中。但是由于 textfieldlabellprivate 我们不能在其他类中引用它们。

我该怎么做?

我这样做是为了学习。

请帮忙。

最佳答案

右键点击组件->属性->代码:

enter image description here

点击变量修饰符,选择你想要的。

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

是的,

  • 1) 类名.变量名
  • 2) 创建类的对象,通过对象调用变量。

关于java - 默认情况下,如何使 netbeans 中的 swing 控件 protected 或公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15717292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com