Java Swing; how to show text after button is clicked

后端 未结 3 1303
既然无缘
既然无缘 2021-01-01 07:15

I want \'Hello world!\' to show when my button is clicked. So go to a next \'frame\' but in the same window! I tried card lay-out, but can any one tell me how to do it with

相关标签:
3条回答
  • 2021-01-01 07:31

    Change frame.add(panel); to frame.getContentPane().add(panel); also i assume that you have initialized the frame using JFrame frame = new JFrame();

    0 讨论(0)
  • 2021-01-01 07:44

    try with code:

    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");
    
                }
            });
    
        }
    
    }
    

    It is working as expected.

    OR if you want the message to be on the same Frame then try with this code.

    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);
                }
            });
    
        }
    
    }
    
    0 讨论(0)
  • 2021-01-01 07:45

    You should have given a better explanation about your problem, but reading your code I assume your problem is that you are not seeing anything when you run your program. Try to add the lines below in your code.

    frame.pack();
    frame.setVisible(true);
    
    0 讨论(0)
提交回复
热议问题