布局相关的问题 求教 初学swing 用布局管理器总是不能把控件放到想要的地方去 研究了半天 发现可以setLayout(null) JFrame上setLayout(null)再添加其它控件 还正常 但是JPanel上setLayout(null) 里面的控件就不显示了 为什么 怎么解决阿 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在JPanel上setLayout(new BorderLayout()); /* * 以下代码在 Windows XP + JDK 5 测试通过,2008年11月15日,oracle_lover * 关键之处在于,如果 JPanel 的 Layout 为 null,其父容器的 Layout 也要为 null * 各组件需要用 setPreferredSize() 自定义大小,用 setBounds() 自定义位置 */import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class LayoutTest extends JFrame { private static final long serialVersionUID = -8655534928921913270L; public LayoutTest() { super("Java Test"); this.setSize(640, 480); // 设置窗口大小 this.setLocationRelativeTo(null); // 窗口屏幕居中 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗口关闭,则程序退出 java.awt.Container container = this.getContentPane(); // 创建一个 JPanel,且 Layout 为 null JPanel paneTop = new JPanel(); paneTop.setLayout(null); // 创建相应组件,首先各组件要自己用 setPreferredSize()定义大小, // 然后用 setBounds() 设定位置 JLabel lb = new JLabel("测试文本:"); Dimension dim1 = new Dimension(100, 20); lb.setPreferredSize(dim1); lb.setBounds(12, 12, dim1.width, dim1.height); JTextField tf = new JTextField(); Dimension dim2 = new Dimension(100, 20); tf.setPreferredSize(dim2); tf.setBounds(140, 12, dim2.width, dim2.height); paneTop.add(lb); paneTop.add(tf); // 要想让 Layout 为 null 的 JPanel 显示,其父容器的 Layout 也必须为 null // 同样,这个 JPanel 要自定义大小和位置 container.setLayout(null); Dimension dim0 = new Dimension(300, 40); paneTop.setBounds(0, 0, dim0.width, dim0.height); container.add(paneTop); } // 创建GUI private static void createAndShowGUI() { LayoutTest xframe = new LayoutTest(); xframe.setVisible(true); } public static void main(String[] args) { // 为事件处理线程安排一个任务:创建并显示程序的GUI javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); }} 这个得自己慢慢调试关键注意container.setLayout(null); CORBA问题 txt文件的读入 请教一个比较有难度的问题(二) 请问大家这个问题看如何解决。谢谢。 关于子类继承父类和调用构造器的问题 !结果怎么会是这样的呢? 谁知道要把applet设置在屏幕的中央该怎么设置啊? 关于用tomcat 5.0.x+sqlserver2000+jdbc for sqlserver2000数据库连接池的配置问题。谢谢 java 如何操作文本文件中的中文? 请问java有哪些开发工具,请注明适合方向。 求助一个C#用AES加密,java解密的问题 菜鸟问题 希望不吝赐教啊 求:把字符串间的若干空格去掉一个的算法
/*
* 以下代码在 Windows XP + JDK 5 测试通过,2008年11月15日,oracle_lover
* 关键之处在于,如果 JPanel 的 Layout 为 null,其父容器的 Layout 也要为 null
* 各组件需要用 setPreferredSize() 自定义大小,用 setBounds() 自定义位置
*/
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class LayoutTest extends JFrame { private static final long serialVersionUID = -8655534928921913270L; public LayoutTest() {
super("Java Test"); this.setSize(640, 480); // 设置窗口大小
this.setLocationRelativeTo(null); // 窗口屏幕居中
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗口关闭,则程序退出
java.awt.Container container = this.getContentPane(); // 创建一个 JPanel,且 Layout 为 null
JPanel paneTop = new JPanel();
paneTop.setLayout(null); // 创建相应组件,首先各组件要自己用 setPreferredSize()定义大小,
// 然后用 setBounds() 设定位置
JLabel lb = new JLabel("测试文本:");
Dimension dim1 = new Dimension(100, 20);
lb.setPreferredSize(dim1);
lb.setBounds(12, 12, dim1.width, dim1.height);
JTextField tf = new JTextField();
Dimension dim2 = new Dimension(100, 20);
tf.setPreferredSize(dim2);
tf.setBounds(140, 12, dim2.width, dim2.height);
paneTop.add(lb);
paneTop.add(tf); // 要想让 Layout 为 null 的 JPanel 显示,其父容器的 Layout 也必须为 null
// 同样,这个 JPanel 要自定义大小和位置
container.setLayout(null);
Dimension dim0 = new Dimension(300, 40);
paneTop.setBounds(0, 0, dim0.width, dim0.height);
container.add(paneTop);
} // 创建GUI
private static void createAndShowGUI() {
LayoutTest xframe = new LayoutTest();
xframe.setVisible(true);
} public static void main(String[] args) {
// 为事件处理线程安排一个任务:创建并显示程序的GUI
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}}
关键注意
container.setLayout(null);