2011-03-28 9 views
2

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

      } 
     }); 

} 

} 

답변

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

+0

물론,하지만 나는 다음 '페이지'와 같은 버튼으로 같은 '창'에 표시 할 텍스트를 의미했습니다 – Opoe

+0

지금 확인할 수 있습니까? – GuruKulki

1

변경 frame.add(panel);frame.getContentPane().add(panel);에 또한 난 당신이 JFrame frame = new JFrame();

+0

초보자이고 위의 코드는 물론 JFrame 프레임을 추가해야합니까 = 새로운 JFrame(); ? – Opoe

+0

실제로 당신은해야합니다. JFrame은 Window를 나타냅니다. 그것이 없으면, 패널을 추가 할 수있는 것이 없습니다. @ GuruKulki의 코드가 작동하는지 확인하십시오. – Jules

+0

고마워요. 내가 잘못 설명 했어요. Hello World가 버튼과 같은 창에 나타나길 바래요. 다음 '페이지'로가는 것 – Opoe

0

당신은 내가 당신의 문제는 당신이 당신의 프로그램을 실행하면 아무것도 표시되지 않는 것을 가정 문제에 대한 더 나은 설명을 제공하지만, 코드를 읽는해야합니다. 코드에 아래 줄을 추가하십시오.

frame.pack(); 
frame.setVisible(true); 
관련 문제