我创建了一个带有 Jframe、JPanel、JLabel 和 JButton 的 GUI。
// JFrame
Jframe f = new JFrame("");
// JButton
JButton b = new JButton("button1");
// JLabel
JLabel l = new JLabel("panel label");
// JPanel
JPanel p = new JPanel();
我在面板上添加了按钮和标签。我的按钮有两个 actionListeners。
b.addActionListener(e -> {
//code
});
b.addActionListener(e -> {
//code
});
我想执行我的第一个动作侦听器。然后执行另一个。基本上,我想在 Jlabel 中按顺序输出一些文本。我希望它在面板上显示“你好”然后“再见”。它给我的问题是它只显示来自我的第二个 ActionListener“Goodbye”的文本。
您可以将第二个转换为以下示例。它只显示第二个的原因是因为它们都立即运行并且您将最后一个视为标签。
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed( ActionEvent e ) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
// set your label as Goodbye here
// add any other business logic
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
});
t.start();
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句