我使用Swing制作了一个简单的GUI,一切正常,但是当我使用.setText方法时JLabel没有更新。我真的对这个问题感到困惑,因为JLabel应该正常工作。
// Variables declaration
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
public NewClass() {
initComponents();
}
private void initComponents() {
jDesktopPane1 = new javax.swing.JDesktopPane();
jLabel1 = new javax.swing.JLabel();
jLabel1.setText("Hello JLabel!");
jDesktopPane1.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 564, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jDesktopPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 388, Short.MAX_VALUE)
);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewClass().setVisible(true);
new NewClass().start();
}
});
}
private void start() {
this.jLabel1.setText("Hello!");
}
答案 0 :(得分:1)
new NewClass().setVisible(true);
new NewClass().start();
您已经创建了两个NewClass类的实例。
您只需要一个实例,然后可以在可见框架上设置标签的文本:
NewClass frame = new NewClass();
frame.setVisible(true);
frame.start();
如果要更改任何Object的属性,则需要对Object的引用。你不能只是继续使用“新”声明。
答案 1 :(得分:0)
我并不完全明白你要做什么,但如果你想在执行开始时尝试更新jLabelText,请试试这个
public NewClass() {
initComponents();
this.setVisible(true);
jLabel1.setText("YourText");
}