【问题标题】:Java Swing; how to show text after button is clicked爪哇摇摆;单击按钮后如何显示文本
【发布时间】:2011-03-28 09:13:42
【问题描述】:

我想要“世界你好!”当我的按钮被点击时显示。 所以转到下一个“框架”,但在同一个窗口中! 我尝试了卡片布局,但谁能告诉我如何使用此代码进行布局;

我在这段代码中做错了什么?

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JOptionPane;



public class myTest{

public static void main(String[] args){

JPanel panel = new JPanel();

JButton button1 = new JButton();

frame.add(panel);
panel.add(button1);

  button1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
        JOptionPane.showMessageDialog(null, "Hello World");

            }
        });

}

}

【问题讨论】:

    标签: java swing text jbutton


    【解决方案1】:

    用代码试试:

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JOptionPane;
    
    public class myTest {
    
        public static void main(String[] args) {
    
            final JFrame frame = new JFrame();
            JPanel panel = new JPanel();
    
            JButton button1 = new JButton();
    
            frame.add(panel);
            panel.add(button1);
            frame.setVisible(true);
    
            button1.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent arg0) {
                    JOptionPane.showMessageDialog(frame.getComponent(0), "Hello World");
    
                }
            });
    
        }
    
    }
    

    它按预期工作。

    或者,如果您希望消息位于同一帧上,请尝试使用此代码。

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    
    public class myTest {
    
        public static void main(String[] args) {
    
            final JFrame frame = new JFrame();
            JPanel panel = new JPanel();
    
            JButton button1 = new JButton();
    
            final JLabel label = new JLabel("Hello World");
    
            label.setVisible(false);
            frame.add(panel);
            panel.add(button1);
            panel.add(label);
            frame.setVisible(true);
    
            button1.addActionListener(new ActionListener() {
    
                public void actionPerformed(ActionEvent arg0) {
                    //JOptionPane.showMessageDialog(frame.getComponent(0), "Hello World");
                    label.setVisible(true);
                }
            });
    
        }
    
    }
    

    【讨论】:

    • 谢谢它完全有效!但我的意思是在同一个窗口!对不起
    • 当然可以,但我的意思是文本显示在与按钮相同的“窗口”中,就像下一个“页面”一样
    • @Opoe,我已经给出了两种显示方式的代码,现在检查。
    【解决方案2】:

    frame.add(panel); 更改为frame.getContentPane().add(panel); 我还假设您已经使用JFrame frame = new JFrame(); 初始化了框架

    【讨论】:

    • 感谢您抽出宝贵时间,我是初学者,以上是我的代码,是否还需要添加 JFrame frame = new JFrame(); ?
    • 确实必须这样做。 JFrame 代表窗口。没有它,就没有什么可以添加面板了。请参阅@GuruKulki 的代码,它正在工作。
    • 谢谢大家,我解释错了,我希望 Hello World 与按钮出现在同一个窗口中。就像进入下一个“页面”
    【解决方案3】:

    您应该对您的问题给出更好的解释,但是阅读您的代码我认为您的问题是您在运行程序时没有看到任何内容。尝试在您的代码中添加以下行。

    frame.pack();
    frame.setVisible(true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 2014-07-23
      • 1970-01-01
      • 2020-12-17
      相关资源
      最近更新 更多