java Jlabel文字怎么实时更新
做了个JFram,点击按钮后,Label,将显示“正在连接网络,”,当数据返回后再显示为真正需要是数据。现在的问题,数据少,网络好,一下就显示结果了。当数据大,等待时间长...
做了个JFram,点击按钮后,Label,将显示“正在连接网络,”,当数据返回后再显示为真正需要是数据。
现在的问题,数据少,网络好,一下就显示结果了。
当数据大,等待时间长的时候,并没有显示“正在连接网络”,而是,整个窗体不可用。当数据回来后,再显示数据。
我要让它这个“正在连接网络”数据在必要时显示,应该怎么写呢?
下面是我的代码片段,没达到目的。
……//result是一个JLabel
result.setText"正在连接网络");
//result.repaint();
//fram.validate();
//fram.repaint();
……//do sth real
result.setText("真正数据");
望知情人告知为谢! 展开
现在的问题,数据少,网络好,一下就显示结果了。
当数据大,等待时间长的时候,并没有显示“正在连接网络”,而是,整个窗体不可用。当数据回来后,再显示数据。
我要让它这个“正在连接网络”数据在必要时显示,应该怎么写呢?
下面是我的代码片段,没达到目的。
……//result是一个JLabel
result.setText"正在连接网络");
//result.repaint();
//fram.validate();
//fram.repaint();
……//do sth real
result.setText("真正数据");
望知情人告知为谢! 展开
展开全部
可以使用JLabel的setText(text);例如:label.setText(text);
下面是一个具体的实例,当单击change按钮时改变文字内容。
public class WinTest implements ActionListener
{
JLabel label = new JLabel("注意我会变哦!");
public WinTest()
{
JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
JButton button = new JButton("change");
button.addActionListener(this);
frame.add(button);
Font font = new Font("黑体",Font.PLAIN,40);
label.setFont(font);
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
}
public static void main(String[] args)
{
new WinTest();
}
@Override
public void actionPerformed(ActionEvent e)
{
if("change".equals(e.getActionCommand()))
{
label.setText("啊哈哈!我会72变,啊哈哈哈哈哈哈!");
}
}
}
下面是一个具体的实例,当单击change按钮时改变文字内容。
public class WinTest implements ActionListener
{
JLabel label = new JLabel("注意我会变哦!");
public WinTest()
{
JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
JButton button = new JButton("change");
button.addActionListener(this);
frame.add(button);
Font font = new Font("黑体",Font.PLAIN,40);
label.setFont(font);
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
}
public static void main(String[] args)
{
new WinTest();
}
@Override
public void actionPerformed(ActionEvent e)
{
if("change".equals(e.getActionCommand()))
{
label.setText("啊哈哈!我会72变,啊哈哈哈哈哈哈!");
}
}
}
展开全部
你这样当然不会有效果的。你要等待的时候不卡死,只好用多线程。你连接网络一个函数,函数开始前先把result设置成“正在连接网络”,成功返回后改成其他的就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用多线程
public void run(){
labelname.setText("动态内容");
}
public void run(){
labelname.setText("动态内容");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
全局写个更新Label现显示的函数 再在其他函数中调用即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要用事件机制, 监听事件,连接时显示一个label, 连接结束后显示另一个label
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询