java - Java 中的按钮和 JLabel

标签 java swing jbutton actionlistener jlabel

我正在尝试编写一个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/

相关文章:

java - 如何将 Admob 与 Webview 集成

java - 控制台中显示奇怪的输出,尝试通过站点中的 java 登录

java - 正则表达式适用于其他引擎,但不适用于 Java Pattern/Matcher

java - "Comparison method violates its general contract!"- TimSort 和 GridLayout

java - 为什么导入字体会破坏代码的其他部分?

java - 如何使带有匿名内部类 Action 监听器的 JButton 在单击时自行删除?

java - 如何使用 Java Swing 创建简单的圆角矩形按钮?

java - 将 Cloud Endpoints API Explorer 锁定到特定 Gmail 帐户

java - 将单词的字符添加到 JButtons 中

java - 在 Java 中使用 JButton 打开后窗口无法正确显示