我正在尝试编写一个Java程序,当您单击按钮时,该程序会隐藏该按钮并显示图像。我已经做到了按钮消失但标签不出现。这是我的代码:
final JLabel label = new JLabel(image, JLabel.CENTER);
label.setAlignmentX(0);
label.setAlignmentY(0);
label.setVisible(false);
label.setIcon(image);
final JButton button = new JButton("CLICK");
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
button.setVisible(false);
label.setVisible(true);
}
});
最佳答案
解决方案是将按钮和标签放在同一个面板上。最初隐藏标签。然后,当单击按钮时,隐藏按钮并取消隐藏标签。
这是一个例子:
public class MagicButton {
public static void main(String[] args) {
// Components
final JFrame frame = new JFrame("Magic Button");
final JButton btn = new JButton("Now, you see me!");
final JLabel label = new JLabel("Now, you don't!");
// Arrangement
frame.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
frame.add(label);
frame.add(btn);
// Make Label invisible
label.setVisible(false);
// When button clicked: hide button, show label, repack frame
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btn.setVisible(false);
label.setVisible(true);
frame.pack();
}
});
// pack and display
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
关于java - Java 中的按钮和 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17725919/