| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1811 人关注过本帖
标题:[求助]java语言的布局管理器和组件位置Location方法的调用
只看楼主 加入收藏
tblovecj
Rank: 1
等 级:新手上路
帖 子:181
专家分:0
注 册:2006-9-20
收藏
得分:0 

不过我也谦虚的问一句setLocation()是干什么用的哟,我写的所有SWING程序里都没用到过这方法啊


2007-04-30 00:57
a276202460
Rank: 2
等 级:新手上路
威 望:4
帖 子:392
专家分:1
注 册:2007-4-10
收藏
得分:0 

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CaiZi{
public void CaiZi(int a,int b,int c,int d,int e){ //d ,e 控制lable位置
JFrame g=new JFrame("彩色字体");
g.getContentPane().setBackground(new Color(40,255,60));

g.setLayout(new FlowLayout());
g.setSize(500,200);
Font f=new Font("楷体",Font.BOLD,20);
Label h=new Label("这是我的第一个GUI程序");
h.setForeground(new Color(a,b,c));
h.setLocation(d,e);//只是定义了位置 无大小
h.setSize(300,50); //定义大小
g.getContentPane().add(h);
g.getContentPane().setLayout(null);
h.setFont(f);
h.setVisible(true);
g.setVisible(true);
g.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);}});
}
public static void main(String[] args){
BufferedReader br;
String str;
int[] data=new int[5];
System.out.println("请输入三色的配比数据");
for(int i=0;i<5;){
try{
br=new BufferedReader(new InputStreamReader(System.in));
str=br.readLine();
data[i]=Integer.parseInt(str);
if(data[i]<=255){i++;}
else{System.out.println("你输入的数据有误,请重新输入数据");}
continue;
}
catch(IOException e){System.out.println(e);}
}
CaiZi op=new CaiZi();
op.CaiZi(data[0],data[1],data[2],data[3],data[4]);
}
}


2007-04-30 08:01
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用lizhijie在2007-4-29 14:12:55的发言:

用setLocation前先setLayout(null),这样才有效。

同意
setLayout会覆盖setLoction


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-04-30 09:15
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
先设置setLayout(null)
再为每个组件设置边界setBounds()
再加入

可惜不是你,陪我到最后
2007-04-30 09:22
a276202460
Rank: 2
等 级:新手上路
威 望:4
帖 子:392
专家分:1
注 册:2007-4-10
收藏
得分:0 

应用程序的窗口setlocation不用设置布局为null 组件要是主要是变换位置 setlocation比bounds好点少两个参数:)


2007-04-30 09:57
热学男儿
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2007-4-28
收藏
得分:0 
谢谢各位的帮助,我的问题解决了,当然我上面说的取消布局管理器就是this.setLayout(null)这样设置,我下面只调用了
setLocation()方法设置组件的位置,没有调用setSize()方法设置组件的大小,所以组件总是没办法显示出来,这次我彻底找到原因了,谢谢大家,还让我多知道的一些就是调用setBounds()方法更方便一些,因为这一个方法里面的四个参数就可以直接将组件的位置和大小设好,而调用setLocation()方法设置了组件后必须在调用setSize()方法设置组件的大小。
2007-04-30 19:22
a276202460
Rank: 2
等 级:新手上路
威 望:4
帖 子:392
专家分:1
注 册:2007-4-10
收藏
得分:0 
两个方法各有利弊要不java怎么会保留方法到现在呢:)

2007-04-30 20:12
快速回复:[求助]java语言的布局管理器和组件位置Location方法的调用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014966 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved