----------------解决方案--------------------------------------------------------
出了什么问题 发出来啊
还有代码
----------------解决方案--------------------------------------------------------
代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Untitled1
extends JFrame implements ActionListener {
JFrame jf;
JPanel jp1;
JPanel jp2;
JButton jb1;
JLabel jl;
JLabel jll;
BorderLayout br;
public void test() {
setTitle("1234");
br = new BorderLayout();
jp1 = (JPanel) getContentPane();
jp2 = (JPanel) getContentPane();
jl = new JLabel("12345");
jll = new JLabel("54321");
jb1 = new JButton("点我啊");
jb1.add(jp1);
jl.add(jp1);
jll.add(jp2);
this.setVisible(true);
jp1.setVisible(true);
jp2.setVisible(false);
setSize(400, 300);
jb1.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
this.setVisible(true);
jp1.setVisible(false);
jp2.setVisible(true);
}
public static void main(String[] args) {
Untitled1 ts = new Untitled1();
}
}
能够通过编译,可是运行下来什么都没有!要怎么改啊??
----------------解决方案--------------------------------------------------------
你把所用东西放在test()方法里
却没有用它阿!!!!!
还有就是
jb1.add(jp1);
jl.add(jp1);
jll.add(jp2);
应该是jpanel.add(jbutton//jlabel);!!!!!!!!!!!!!!!!!!!!
----------------解决方案--------------------------------------------------------
太粗心了
可是为什么出来的面板上什么都没有啊???
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Untitled1
extends JFrame implements ActionListener {
JFrame jf;
JPanel jp1;
JPanel jp2;
JButton jb1;
JLabel jl;
JLabel jll;
BorderLayout br;
public void test() {
setTitle("1234");
br = new BorderLayout();
jp1 = (JPanel) getContentPane();
jp2 = (JPanel) getContentPane();
jl = new JLabel("12345");
jll = new JLabel("54321");
jb1 = new JButton("点我啊");
jp1.add(jl, java.awt.BorderLayout.CENTER);
jp1.add(jb1, java.awt.BorderLayout.WEST);
jp2.add(jll, java.awt.BorderLayout.CENTER);
jp1.setVisible(true);
jp2.setVisible(false);
setSize(400, 300);
setVisible(true);
jb1.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
jp1.setVisible(false);
jp2.setVisible(true);
}
public static void main(String[] args) {
Untitled1 ts = new Untitled1();
ts.setDefaultCloseOperation(EXIT_ON_CLOSE);
ts.test();
}
}
----------------解决方案--------------------------------------------------------
jp1 = (JPanel) getContentPane();
jp2 = (JPanel) getContentPane();
这样得到的是重复的引用
当然会出问题
你直接构造两个 JPanel不就可以了吗
----------------解决方案--------------------------------------------------------
斑竹我有些糊涂了,重新构造JPanel不用再添加到面板里了吗??如果要的话不是和我上面写的一样了吗?
----------------解决方案--------------------------------------------------------
你试一下jp1=new JPanel();jp2=new JPanel();
这样的
----------------解决方案--------------------------------------------------------
添加了不行啊!什么JFrame里什么都没有,是空的!能不能给段代码啊!
----------------解决方案--------------------------------------------------------
这代码一点可读性都没有,看也是浪费时间
----------------解决方案--------------------------------------------------------