Java Swing;как показать текст после нажатия кнопки - PullRequest
2 голосов
/ 28 марта 2011

Я хочу «Привет, мир!»чтобы показать, когда моя кнопка нажата.Так что переходите к следующему «кадру», но в том же окне!Я попробовал макет карты, но кто-нибудь может сказать мне, как это сделать с этим кодом;

Что я делаю не так в этом коде?

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

            }
        });

}

}

Ответы [ 3 ]

6 голосов
/ 28 марта 2011

попробуйте с кодом:

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

    }

}
1 голос
/ 28 марта 2011

Измените frame.add(panel); на frame.getContentPane().add(panel); также я предполагаю, что вы инициализировали кадр, используя JFrame frame = new JFrame();

0 голосов
/ 28 марта 2011

Вы должны были дать лучшее объяснение своей проблемы, но, читая ваш код, я предполагаю, что ваша проблема в том, что вы ничего не видите при запуске вашей программы.Попробуйте добавить строки ниже в вашем коде.

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