当前位置: 技术问答>java相关
JBuilder的一个菜鸟级问题
来源: 互联网 发布时间:2015-07-01
本文导语: 我在JBuilder6.0中拖放各种组件(如JButton、jTextPane)时组件的大小和位置都无法改变,这是为什么? 附:生成的代码如下: public class Applet1 extends Applet { boolean isStandalone = false; JButton jButton1 = new JButton(); ...
我在JBuilder6.0中拖放各种组件(如JButton、jTextPane)时组件的大小和位置都无法改变,这是为什么?
附:生成的代码如下:
public class Applet1 extends Applet {
boolean isStandalone = false;
JButton jButton1 = new JButton();
JTextPane jTextPane1 = new JTextPane();
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public Applet1() {
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
jButton1.setText("jButton1");
jTextPane1.setText("jTextPane1");
this.add(jButton1, null);
this.add(jTextPane1, null);
}
附:生成的代码如下:
public class Applet1 extends Applet {
boolean isStandalone = false;
JButton jButton1 = new JButton();
JTextPane jTextPane1 = new JTextPane();
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construct the applet
public Applet1() {
}
//Initialize the applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
jButton1.setText("jButton1");
jTextPane1.setText("jTextPane1");
this.add(jButton1, null);
this.add(jTextPane1, null);
}
|
事实上,我没有用过JBuilder,我用Oracle的JDeveloper,不过JDeveloper是在购买了底版本的JBuilder基础上扩建的,所以多少应该类似吧,因此斗胆发言:
点Applet窗体内空白处,在Applet窗体的属性面板里应该有Layout的列表,看看可不可以设成NULL。多试两种你就能体会不同Layout的用处了。
点Applet窗体内空白处,在Applet窗体的属性面板里应该有Layout的列表,看看可不可以设成NULL。多试两种你就能体会不同Layout的用处了。
|
我在APPLET里用了XYLAYOUT,在JB里可以运行,但是我直接打开HTML就告诉我出现一个异常,好像是说我没有com.borland.jbcl.xylayout这个包,那位高手知道如何把这个包加进去?
(我把jbcl.jar拷贝到和class文件相同的目录下也不行。)
(我把jbcl.jar拷贝到和class文件相同的目录下也不行。)
|
别用XYLayout它不是java自带的
|
布局管理器用null的话,程序运行时缩放界面大小时你就知道它的缺点了
其实null布局管理器可以作为一个设计期的过渡,布置组件位置比较方便直观,布置好以后直接把布局管理器转化为强大的GridBagLayout。
其实null布局管理器可以作为一个设计期的过渡,布置组件位置比较方便直观,布置好以后直接把布局管理器转化为强大的GridBagLayout。
|
JBUILDER的面板中有一种名叫 XYLayout 的面板布局方法,这是BORLAND自己
开发的布局管理器,使用这种管理器可以是用户非常方便、直观的看到自己
设计的GUI的结果,(就象设计VB的GUI一样),但是BORLAND并不提倡用户
在发布自己的产品的时候使用该种布局管理器,因为它是非SUN JSDK 库中
的标准管理器,因此,在你使用XYLayout将自己的GUI设计好之后,应该
将面板布局改为 GridBagLayout 或其他标准的布局管理器,以增加程序的
兼容性。
开发的布局管理器,使用这种管理器可以是用户非常方便、直观的看到自己
设计的GUI的结果,(就象设计VB的GUI一样),但是BORLAND并不提倡用户
在发布自己的产品的时候使用该种布局管理器,因为它是非SUN JSDK 库中
的标准管理器,因此,在你使用XYLayout将自己的GUI设计好之后,应该
将面板布局改为 GridBagLayout 或其他标准的布局管理器,以增加程序的
兼容性。
|
XYLayout是jbuilder自带的类,尽管不算是jdk原配的,但是你拿来用用也无妨,只是记得要把XYLayout和他相关的类作为自己的java程序包的一部分,其实很小的.把它用作applet的布局也很划算的. 只有两个类:
com.borland.jbcl.layout.XYConstraints
com.borland.jbcl.layout.XYLayout
你把他们抽取出来吧.呵呵,这应该是最合算的办法了
com.borland.jbcl.layout.XYConstraints
com.borland.jbcl.layout.XYLayout
你把他们抽取出来吧.呵呵,这应该是最合算的办法了
|
swing就是这样的,用一下布局,或者setbound
|
用xy布局器
|
当然无法改变,要是可以随便改变的话还怎么跨平台。
按照Java的观点,所有控件都是放在Panel容器上,通过容器的层层嵌套和容器的布局、边界最终来实现界面的外观。
当然,有一些软件就是针对这种不易设计的原因,专门设计了自己的一套方法来使Java的界面设计变得简单,比如JBuilder里,就可以选择null布局,从而实现任意地摆放控件的轻松设计。如果你只是学了玩的,可以考虑用这种方法来设计界面,如果你是想认真的学习Java的话,建议使用Java标准的设计方法来设计界面(真的很麻烦)。
按照Java的观点,所有控件都是放在Panel容器上,通过容器的层层嵌套和容器的布局、边界最终来实现界面的外观。
当然,有一些软件就是针对这种不易设计的原因,专门设计了自己的一套方法来使Java的界面设计变得简单,比如JBuilder里,就可以选择null布局,从而实现任意地摆放控件的轻松设计。如果你只是学了玩的,可以考虑用这种方法来设计界面,如果你是想认真的学习Java的话,建议使用Java标准的设计方法来设计界面(真的很麻烦)。
|
contectPane是内容窗格,JApplet是不能直接向上添加组建的,要在它的内容创各上添加。