开发者

Java Swing; how to show text after button is clicked

开发者 https://www.devze.com 2023-02-20 10:05 出处:网络
I want \'Hello world!\' to show when my button is clicked. So go to a next \'frame\' but in the same window!

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 this code;

What am i doing wrong in this code?

import javax.swing.JButton;
import javax.swing.JFrame;
import jav开发者_开发技巧ax.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");

            }
        });

}

}


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

    }

}


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


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

精彩评论

暂无评论...
验证码 换一张
取 消