设置为FlowLayout后,组件不能设置size

lg_asus 2011-09-29 03:25:12

public class Test3 extends JFrame{
private JTextField textField;
public Test3() {
getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));

JComboBox comboBox = new JComboBox(new String[]{"1","2","3"});
// comboBox.setSize(new Dimension(60,10));//doesn't work
getContentPane().add(comboBox);

textField = new JTextField();
textField.setSize(100,50);//do not work either
getContentPane().add(textField);
textField.setColumns(10);
this.pack();
this.setVisible(true);
}
public static void main(String...args){
new Test3();
}
}


代码中的两处地方,JComboBox和JTextField不能改变size,请如在保证FlowLayout布局的情况下,怎么才能改变size?
...全文
255 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lg_asus 2011-09-30
  • 打赏
  • 举报
回复
哦,原来这样,,多谢!
蛋黄车 2011-09-29
  • 打赏
  • 举报
回复
看来真记错了 = =!

记得加上这一句:this.setDefaultCloseOperation(3); 点关闭的时候,关掉程序
蛋黄车 2011-09-29
  • 打赏
  • 举报
回复
不用JFrame的getContentPane() 这个方法,直接换成this试试

我记得设置了布局是可以改大小的啊,难道我记错了 =.=~
sunyiz 2011-09-29
  • 打赏
  • 举报
回复
既然使用布局管理了

那 size 是由布局管理器来控制了

你需要的设置控件的以下三个属性:
preferredSize
maximumSize
minimumSize
布局管理器会根据这三个属性,来计算控件的 size

只是不用布局管理器,即setLayout(null); 时
才需要自己设置 size
一个很不错的计算机网络课程设计,package com.briup.gui; import java.awt.BorderLayout;//BorderLayout(边布局) 布局管理器类 import java.awt.FlowLayout;//FlowLayout是流式布局 import java.awt.Toolkit;// 工具包 Toolkit 的子类被用于将各种组件绑定到特定本机工具包实现。 import java.awt.event.ActionEvent;//动作事件 import java.awt.event.ActionListener;//事件监听接口 import javax.swing.*; import com.briup.net.WebServerNet; public class WebServerFrame extends JFrame implements ActionListener { // 按钮面板 private JPanel btnPan = new JPanel(new FlowLayout(FlowLayout.CENTER));//创建FlowLayout布局面板,对齐方式为居中(FlowLayout.CENTER) private JLabel listenPortLb = new JLabel("Server listen port: ");//初始化控件(创建服务器监听的端口) private JTextField portTf = new JTextField("80", 5);//初始化控件,创建TextField(文本行类),默认端口号为,长度为 private JButton controlBtn = new JButton("Start");//初始化Button(按钮)(控制)控件 private JButton clearHintBtn = new JButton("Clear Hint");//初始化按钮(claer)控件 // 提示信息面板 private JTextArea hintTa = new JTextArea();//新建一个显示TextArea(纯文本)的多行区域 private WebServerNet net;//创建Web服务器网页 public WebServerFrame() { initComponent();//调用初始化函数,Component(组件类) net = new WebServerNet(this);//实例化一个用户定义的类 } /** *变量的初始化以及此类的入口 */ private void initComponent() { buildBtnPan(); buildHintPan(); setSize(400, 300);//设置窗口的大小 Toolkit tool = Toolkit.getDefaultToolkit();//得到默认的窗口模式 setLocation((tool.getScreenSize().width - this.getSize().width) / 2, (tool.getScreenSize().height - this.getSize().height) / 2); setTitle("Briup WebServer V1.0");//设置面板的标题 setDefaultCloseOperation(EXIT_ON_CLOSE);//设置用户关闭窗口时得操作 setResizable(false);//设置窗口是否可以改变大小,(false)表示不可以改变 setVisible(true);//设置可见,使窗口可见 } /** *新建一个面板 */

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧