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);
精彩评论