2011-03-28 993 views
2

我想'Hello world!'显示我的按钮被点击的时间。 因此,请转到下一个“框架”,但在同一个窗口! 我试过卡片布局,但任何人都可以告诉我如何用这段代码来做到这一点;Java Swing;点击按钮后如何显示文字

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

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

      } 
     }); 

} 

} 

回答

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

      } 
     }); 

    } 

} 

它工作正常。

或者如果你想消息在同一个框架然后尝试使用此代码。

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

谢谢你,它的工作原理!但我的意思是在同一个窗口!对不起 – Opoe 2011-03-28 09:23:33

+0

当然,但我的意思是文本出现在相同的'窗口',像下一个'页面'按钮 – Opoe 2011-03-28 09:28:45

+0

你现在可以检查? – GuruKulki 2011-03-28 09:30:37

1

变化frame.add(panel);frame.getContentPane().add(panel);还我假设你已经初始化使用JFrame frame = new JFrame();

+0

谢谢你的时间我是一个初学者,上面是我的代码,我也必须添加JFrame frame = new JFrame(); ? – Opoe 2011-03-28 09:19:48

+0

的确,你必须这样做。 JFrame代表窗口。没有它,没有什么可以添加面板。请参阅@ GuruKulki的代码正在工作。 – Jules 2011-03-28 09:23:10

+0

谢谢大家,我解释错了,我希望Hello World出现在与按钮相同的窗口中。就像去下一个'页面' – Opoe 2011-03-28 09:27:26

0

你应该给你的问题的一个更好的解释,但是读你的代码,我认为你的问题是,你没有看到任何东西,当你运行程序。尝试在代码中添加下面的代码行。

frame.pack(); 
frame.setVisible(true); 
相关问题