请问java的一个基础问题。

sgyiliya 2019-09-22 03:06:05
我参考这篇文章:
https://www.jianshu.com/p/cdca9a30b86b

在IDEA里面建了一个GUI的基础,然后,我想在线程里面
更改界面上的label的text属性,结果改不了,界面上的text属性没有变化。

请问该怎么写代码才能改?




import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.image.ImageObserver;
import java.text.AttributedCharacterIterator;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class Form_Main {
private JButton button1;
private JPanel panel1;
private JLabel mylabel;

Thread_Run_Voice_Merge thread_Run_Voice_Merge = null;


public static void main(String[] args) {
JFrame frame = new JFrame("Form_Main");
frame.setContentPane(new Form_Main().panel1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
frame.setLocationRelativeTo(new Form_Main().panel1);
//frame.setLocation(300,300);
frame.setSize(300, 300);

new Form_Main().RunThread();

}

public void RunThread() {
thread_Run_Voice_Merge = new Thread_Run_Voice_Merge();
new Thread(thread_Run_Voice_Merge).start();

System.out.println("线程启动了");

}

public class Thread_Run_Voice_Merge implements Runnable {

public Thread_Run_Voice_Merge() {

}

@Override
public void run() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {

mylabel.setText("你好");
mylabel.updateUI();
mylabel.repaint();
mylabel.revalidate();
panel1.updateUI();
panel1.repaint();
panel1.revalidate();

}
});
}
}
}


...全文
200 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-09-23
  • 打赏
  • 举报
回复
引用 1 楼 sgyiliya 的回复:
没人回答吗?


你label和panel1都还没加入frame 怎么会改变?!
sgyiliya 2019-09-23
  • 打赏
  • 举报
回复
没人回答吗?
瘦死的黑骆驼 2019-09-23
  • 打赏
  • 举报
回复
楼上正解

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧