如何让组件用他自己最小的宽度和高度显示在容器当中,十分头痛,在先等待! 我已经使用了FlowLayout对象,但组建在容器中显示的时候好象采用的是他最佳的高度和宽度。如何设置组建,让他显示的时候用他自己最小的高度和宽度显示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你覆盖掉你的那个组件的getMinSize()getMaxSize()应该是差不多是这么写的方法让他们的返回值都一样试试看 容器怎么会知道,他上边的组建要以最小的MinSize显示呢?是不是还要对容器进行设置? mb = new JMenuBar(); configMenu = new JMenu("设置"); configMenu.add("修改网络..."); configMenu.add("修改用户..."); configMenu.add("从新连接"); configMenu.add("外观修改"); configMenu.add("关闭短信"); mb.add(configMenu); Dimension mbSize = new Dimension(60, 26); Dimension buttonSize = new Dimension(29, 26); mb.setMinimumSize(mbSize); mb.setMaximumSize(mbSize); borderLayout = new BorderLayout(); contentPanel = (JPanel) this.getContentPane(); southPanel = new JPanel(); southPanel.setBorder(BorderFactory.createEtchedBorder(getBackground().darker(), getBackground().brighter())); contentPanel.setLayout(borderLayout); list = new javax.swing.JList(); scrollPane = new javax.swing.JScrollPane(list); horn = new javax.swing.JButton(new ImageIcon(this.getClass().getResource("horn1.gif"))); horn.setMinimumSize(buttonSize); horn.setMaximumSize(buttonSize); contentPanel.add(scrollPane, borderLayout.CENTER); scrollPane.setBorder(new TitledBorder("Name's")); southPanel.setLayout(new FlowLayout()); contentPanel.add(southPanel, borderLayout.SOUTH); southPanel.add(mb); southPanel.add(horn); this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); this.setSize(message.Config.ClientWidth, message.Config.ClientHeight); this.setResizable(false); System.out.println(horn.getMaximumSize()); System.out.println(horn.getMinimumSize()); System.out.println(mb.getMaximumSize()); System.out.println(mb.getMinimumSize()); 应该是覆盖getPrefferedSize()方法吧,直接让该方法返回getMinimunSize() 最后四行是我临时调试用的。southPanel这个面板容器中,放了一个菜单和图片按扭。我的窗口是固定的,当把这两个组建添加到southPanel中的时候,就换行了,菜单和按扭这两个组建都浪费了很多的空间,如果把菜单和按扭的大小调整的小一些,是完全可以在以行放下的。不知道各位高手是如何解决这样的问题的 是不是修改你的southPanel的layout 为甚麽没有输出到文件中 怎么jtable增加一列jcheckbox? 关于 J2SE和 eclipse 调用返回类型问题 JAVA的编译问题 j2sdk1.5的api文档有什么好的查看软件吗? 如何锁定数据库表中某一特定行?(首次发贴,多多帮忙) 一个画图程序paint问题 关于文件上传的中文问题,解决问题150分送上.不够可再加,前提是要解决问题. 谁来看看我的这个程序,不该出错啊!( 运行主程序怎么会找不到STUB?谁来帮帮忙啊~~~~(RMI) 用installshield如何打包java程序
getMinSize()
getMaxSize()
应该是差不多是这么写的方法
让他们的返回值都一样
试试看
是不是还要对容器进行设置?
configMenu = new JMenu("设置");
configMenu.add("修改网络...");
configMenu.add("修改用户...");
configMenu.add("从新连接");
configMenu.add("外观修改");
configMenu.add("关闭短信");
mb.add(configMenu); Dimension mbSize = new Dimension(60, 26);
Dimension buttonSize = new Dimension(29, 26); mb.setMinimumSize(mbSize);
mb.setMaximumSize(mbSize);
borderLayout = new BorderLayout();
contentPanel = (JPanel) this.getContentPane();
southPanel = new JPanel();
southPanel.setBorder(BorderFactory.createEtchedBorder(getBackground().darker(), getBackground().brighter()));
contentPanel.setLayout(borderLayout);
list = new javax.swing.JList();
scrollPane = new javax.swing.JScrollPane(list);
horn = new javax.swing.JButton(new ImageIcon(this.getClass().getResource("horn1.gif")));
horn.setMinimumSize(buttonSize);
horn.setMaximumSize(buttonSize);
contentPanel.add(scrollPane, borderLayout.CENTER);
scrollPane.setBorder(new TitledBorder("Name's")); southPanel.setLayout(new FlowLayout());
contentPanel.add(southPanel, borderLayout.SOUTH);
southPanel.add(mb);
southPanel.add(horn); this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setSize(message.Config.ClientWidth, message.Config.ClientHeight);
this.setResizable(false); System.out.println(horn.getMaximumSize());
System.out.println(horn.getMinimumSize());
System.out.println(mb.getMaximumSize());
System.out.println(mb.getMinimumSize());
southPanel这个面板容器中,放了一个菜单和图片按扭。
我的窗口是固定的,当把这两个组建添加到southPanel中的时候,就换行了,菜单和按扭这两个组建都浪费了很多的空间,如果把菜单和按扭的大小调整的小一些,是完全可以在以行放下的。
不知道各位高手是如何解决这样的问题的
southPanel
的
layout