Java Swing; 如何在单击按钮后显示文本

Opo*_*poe 2 java swing text jbutton

我想要'Hello world!' 单击我的按钮时显示.所以转到下一个'框架',但在同一个窗口!我尝试过布局,但任何人都可以告诉我如何用这个代码做到这一点;

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

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

            }
        });

}

}
Run Code Online (Sandbox Code Playgroud)

Gur*_*lki 6

试试代码:

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

            }
        });

    }

}
Run Code Online (Sandbox Code Playgroud)

它按预期工作.

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

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

    }

}
Run Code Online (Sandbox Code Playgroud)