GUI的一些注意事项

[/code]1.布局设为null后要重新设定每一组件的大小(setSize(int x, int y)方法),否则显示不了。

2.设置背景图片。
JFrame有三层。
[list]
[*] 底层:JRootPane [code="java"]JRootPane jrootPane = jframe.getRootPane();

[*] 第二层:JlayerPane
JLayeredPane jlayeredPane = jframe.getLayeredPane();

[*] 最上层: ContentPane 一般组件就是放在ContentPane层上
[/list]
图片可以放在底层(让上面两层透明),或是第二层(让最上层透明)。否则图片可能会在组件上方,导致组件显示有延迟(鼠标动它时它才显示出来)

3. 如果要在单独的视图中(在 JScrollPane 外)使用 JTable 并显示表标题,则可以使用 getTableHeader() 获取并单独显示它。

4.
一维数组的clone分配新空间,
二维数组clone不分配新空间。因为java中没有二维数组的概念,只有数组的数组。所以二维数组中存储的实际上是一维数组的引用。当调用clone函数时,是对一维数组的引用进行了复制。


public class ArrayCloneTest {
int[] srcOne = {1,2,3};
int[] destOne = srcOne.clone();
int[][] srcTwo = new int[4][4];
int[][] destTwo = srcTwo.clone();
public static void main(String[] args){
ArrayCloneTest act = new ArrayCloneTest();
act.test();

}

public void test(){
System.out.println("原srcOne数组:");
printArrayOne(srcOne);
System.out.println("原destOne数组:");
printArrayOne(destOne);
System.out.println("原srcTwo数组:");
printArrayTwo(srcTwo);
System.out.println("原destTwo数组:");
printArrayTwo(destTwo);
changeDataOfsrcOne();
changeDataOfsrcTwo();
System.out.println();
System.out.println("现srcOne数组:");
printArrayOne(srcOne);
System.out.println("现destOne数组:");
printArrayOne(destOne);
System.out.println("现srcTwo数组:");
printArrayTwo(srcTwo);
System.out.println("现destTwo数组:");
printArrayTwo(destTwo);
}

public void changeDataOfsrcOne(){
srcOne[1] = 99;
}

public void changeDataOfsrcTwo(){
srcTwo[2][2] = 2;
}

public void printArrayOne(int[] arrayOne){
for (int e : arrayOne) {
System.out.print(e+"、");
}
System.out.println();
}

public void printArrayTwo(int[][] arrayTwo){
for (int[] is : arrayTwo) {
for (int e : is) {
System.out.print(e+"、");
}
System.out.println();
}
}

}


结果:
原srcOne数组:
1、2、3、
原destOne数组:
1、2、3、
原srcTwo数组:
0、0、0、0、
0、0、0、0、
0、0、0、0、
0、0、0、0、
原destTwo数组:
0、0、0、0、
0、0、0、0、
0、0、0、0、
0、0、0、0、

现srcOne数组:
1、99、3、
现destOne数组:
1、2、3、
现srcTwo数组:
0、0、0、0、
0、0、0、0、
0、0、2、0、
0、0、0、0、
现destTwo数组:
0、0、0、0、
0、0、0、0、
0、0、2、0、
0、0、0、0、

5.一维数组的复制方法:
[list]
[*]循环
[*]clone
[*]System.arrayCopy方法
[*]Arrays.copyOf方法
[/list]
二维数组。。。老老实实双循环吧。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值