关于嵌套panel的小问题 你这样设置边界是无效的,jdk中没有这样用的,用jbuilder才有xylayout方式 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JDK是有无布局的方法的怎么没有呢?最大化就能看到了把你的panel设小点 JDK是有无布局的方法的怎么没有呢?最大化就能看到了把你的panel设小点 晕,发了两遍。还有一点,程序应该改成这样就可以直接看到了setLayout(null);setBounds(200,200,500,300); p1.setBounds(0,0,100,100);getContentPane().add(p1);p2.setBounds(400,0,100,100);getContentPane().add(p2); setVisible(true);因为你的setVisible(true);放在了add方法前面,还没有加上两个panel就显示了,所以必须最大化一下,让JVM自动重新调用JFrame的paint方法才可以看到。 首先指出代码中一些不好的用法,比如:setLayout(null),在我的java 1.4.2的环境中编译会出错。实际上,应该使用this.getContentPane().setLayout();这是JFrame和Frame不同的地方。另外,在swing里面,也不推荐使用setVisible()来显示窗口,而应该使用show();在我这里运行正常的代码如下:/* * Created on 2005-3-3 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */package com.ubi.config.demo;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class aaa extends JFrame{ aaa() { P1 p1=new P1(); P2 p2=new P2(); this.getContentPane().setLayout(null); setBounds(200,200,500,300); p1.setBounds(0,0,400,300); getContentPane().add(p1); p2.setBounds(400,0,100,300); getContentPane().add(p2); } public static void main(String[] args) { aaa test=new aaa(); test.show(); } //================================================ class P1 extends JPanel { P1() { btStart=new JButton("111"); add(btStart); } private JButton btStart; } class P2 extends JPanel { P2() { btStart=new JButton("222"); add(btStart); } private JButton btStart; }}//:-) 楼上的说反了吧?应该是show已经不推荐使用了啊。还有直接setLayout()虽然在1.4.2编译不同过,不过这也是1.5的最新特性啊,新特性都给说成不好的用法,还死守过去的那还更新干嘛啊? 查了一下书,赶快来改正我的说法。原来是我自己记错了,不好意思。^_^其实不推荐使用的是Compenet.show()方法,而JFrame是继承的Window类,它的show()方法并没有被不推荐使用,相反它比setVisible()更好,因为JFrame.show()方法是显示并且放在最前面。所以在JFrame上用show()方法更合理。 不是吧,你编译一下就知道JFrame的show()方法是不被推荐的。我觉得我的程序最大的错误是把setVisible(true);放在了前面。我一直不注意这样的问题 这个是java核心技术上说的,应该没问题,show()方法的确用在窗体上比较好而setVisible(true)则用在组件上比较好。 Java robot能不能不实际移动鼠标就产生鼠标移动的事件... 如何到处java工程? 类似小时候玩的摇奖机是怎么实现的呢? jComboBox显示内容和id问题,相信好多人都会碰到的问题 大家好,关于for each的问题 请高手为小弟讲解关于JAVA中关于编译时的错误和执行错误的区别 高手请进, 能解决问题立即给分!!!! 学JAVA都应该学什么?偶是新手的说 【网上看到这样一个题 但就是不明白 大神们指导下】 在java程序中,如何调用dos程序 有两个初级的问题(两段代码不明白) 请大侠指点 关于滚动条显示的问题
怎么没有呢?最大化就能看到了
把你的panel设小点
怎么没有呢?最大化就能看到了
把你的panel设小点
还有一点,程序应该改成这样就可以直接看到了
setLayout(null);
setBounds(200,200,500,300);
p1.setBounds(0,0,100,100);
getContentPane().add(p1);
p2.setBounds(400,0,100,100);
getContentPane().add(p2);
setVisible(true);因为你的setVisible(true);放在了add方法前面,还没有加上两个panel就显示了,所以必须最大化一下,让JVM自动重新调用JFrame的paint方法才可以看到。
在我的java 1.4.2的环境中编译会出错。实际上,应该使用this.getContentPane().setLayout();
这是JFrame和Frame不同的地方。另外,在swing里面,也不推荐使用setVisible()来显示窗口,而应该使用show();
在我这里运行正常的代码如下:
/*
* Created on 2005-3-3
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.ubi.config.demo;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class aaa extends JFrame
{
aaa()
{
P1 p1=new P1();
P2 p2=new P2(); this.getContentPane().setLayout(null);
setBounds(200,200,500,300);
p1.setBounds(0,0,400,300);
getContentPane().add(p1);
p2.setBounds(400,0,100,300);
getContentPane().add(p2);
} public static void main(String[] args)
{
aaa test=new aaa();
test.show();
}
//================================================
class P1 extends JPanel
{
P1()
{
btStart=new JButton("111");
add(btStart);
}
private JButton btStart;
}
class P2 extends JPanel
{
P2()
{
btStart=new JButton("222");
add(btStart);
}
private JButton btStart;
}
}//:-)
还有直接setLayout()虽然在1.4.2编译不同过,不过这也是1.5的最新特性啊,新特性都给说成不好的用法,还死守过去的那还更新干嘛啊?
其实不推荐使用的是Compenet.show()方法,而JFrame是继承的Window类,它的show()方法并没有被不推荐使用,相反它比setVisible()更好,因为JFrame.show()方法是显示并且放在最前面。
所以在JFrame上用show()方法更合理。
我觉得我的程序最大的错误是把setVisible(true);放在了前面。我一直不注意这样的问题
而setVisible(true)则用在组件上比较好。