背景:
Java语言
A类中包含两个面板,其中一个面板是对C类的实例(C包含于A类中,没有分开写),而另一个面板则需要C面板中的按钮,通过事件侦听来进行变换(变换新的面板内容或者弹出一个窗口),方法是调用项目中其他的类 Class 。
问题:
在C类中按钮写了方法,但是变换面板的时候,比如用到类B,B不显示,弹出新的窗口时窗口内容不显示,而且关闭这个窗口,整个项目就关闭了。希望有人解答,我是新手 没多少分了,以后有多分一定记得给大家,谢谢了
1、
A类是个继承JFrame 的类
B类是继承JPanel的类
我在A类中调用一个B类,希望在A中添加B这样的JPanel
可是不显示,怎么办,为什么?B 中设置了setVisiable(true);
2、
A类中 还包含一个继承JPanel的类C,C的实例已经包含在A中了,C中有按钮,添加按钮事件调用项目中另一个类D,D和A一样是继承JFrame,但是窗口出来了,D中的内容却不显示。为什么呢?
3、
关闭一个JFrame,所有的窗口都关闭了 有什么方法解决么?
4、
JSplitPanel的disable() 方法不能用??
我希望 初始并固定它的宽度,setDividerLocation(150)是固定好像不管用,固定宽度呢?
5、
JBuilder运行速度怎么那么慢呢? 一句话就听了,我的电脑是不好,很早以前的内存256 但是也慢的夸张了吧55
谢谢
Java语言
A类中包含两个面板,其中一个面板是对C类的实例(C包含于A类中,没有分开写),而另一个面板则需要C面板中的按钮,通过事件侦听来进行变换(变换新的面板内容或者弹出一个窗口),方法是调用项目中其他的类 Class 。
问题:
在C类中按钮写了方法,但是变换面板的时候,比如用到类B,B不显示,弹出新的窗口时窗口内容不显示,而且关闭这个窗口,整个项目就关闭了。希望有人解答,我是新手 没多少分了,以后有多分一定记得给大家,谢谢了
1、
A类是个继承JFrame 的类
B类是继承JPanel的类
我在A类中调用一个B类,希望在A中添加B这样的JPanel
可是不显示,怎么办,为什么?B 中设置了setVisiable(true);
2、
A类中 还包含一个继承JPanel的类C,C的实例已经包含在A中了,C中有按钮,添加按钮事件调用项目中另一个类D,D和A一样是继承JFrame,但是窗口出来了,D中的内容却不显示。为什么呢?
3、
关闭一个JFrame,所有的窗口都关闭了 有什么方法解决么?
4、
JSplitPanel的disable() 方法不能用??
我希望 初始并固定它的宽度,setDividerLocation(150)是固定好像不管用,固定宽度呢?
5、
JBuilder运行速度怎么那么慢呢? 一句话就听了,我的电脑是不好,很早以前的内存256 但是也慢的夸张了吧55
谢谢
2.D是否有设置setVisibale()
3.你可以设置开启一个JFrame的时候另一个隐藏
要么在构造中 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
要么使用多线程
// 第一个类A
class A extends JFrame{
JSplitPane jsplit=new JSplitPane();
JPanel jpan; //contentPane()
JPanel pan1=new JPanel();//pan1
MyGroupPanel groupan=new MyGroupPanel();//使用本类当中的面板类
JPanel panCon=new JPanel();
JButton jbn=new JButton("1");
……//略
public A(){
pan1.add(jbn);//面板1 填充
panCon.setLayout(new CardLayout());//设置为CardLayout布局
panCon.add(pan1,"test");// 添加面板
panCon.add(new B(),"all");//添加外部的一个面板 来自B类 jsplit.setLeftComponent(groupan);//左侧面板
jsplit.setRightComponent(panCon);//右侧面板
jpan.add(jsplit);
……//略
}class MyGroupPanel extends JPanel implements ActionListener{
private JPanel jpan = new JPanel();
JButton bt1= new JButton();
JButton bt2= new JButton();
JButton bt3= new JButton();
MyGroupPanel(){
……//省略 添加按钮到面板里
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == bt1) {
CardLayout cl = (CardLayout)(panCon.getLayout());
cl.show(panCon, "all");//在这里出错,不显示?????????? }else if (e.getSource() == bt2) {
CardLayout cl = (CardLayout)(panCon.getLayout());
cl.show(panCon, "test"); //调用内部的JPanel 显示
}elsef (e.getSource() == bt3) {
……
}
}//第二个类B,这里个类中不能用getContentPane()??我希望写多个B这样的类,然后在A中调用class B extends JPanel{
JPanel contentPane;
JLabel lab=new JLabel("test");
public B(){
contentPane=new JPanel();
contentPane.setLayout(null);
lab.setBounds(20,20,150,30);
contentPane.add(lab);
this.add(contentPane);
this.setVisible(true);
this.setSize(450, 360);
}
}
思路错了么?
在JFrame类中能调用一个 JInternalFrame类对象么?好像不可以……
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这两个方法都会把整个程序关闭,如果不写的话,默认就关闭窗口,而不关闭整个项目了;
不知道默认的是什么方法?
B中设置了contentPane.setBounds(15,15,400,350);用于显示大小
D是有设置setVisibale(ture)
多线程不怎么用,默认就可以关闭一个窗口而不关闭项目了