【发布时间】:2014-01-11 23:53:50
【问题描述】:
我有一个 JTextField 添加到 OverlayLayout,但 JTextField 会自动缩放为整个面板的尺寸,这是我不想要的。我也不想弄乱 JTextField 的尺寸,因为默认高度正好适合字体,而宽度应该由构造函数中的列数定义。解决此问题的正确方法是什么?
这是我现在拥有的相关代码: 框架 = 新的 JFrame("框架"); frame.setResizable(false);
panel = new GamePanel();
panel.setPreferredSize(new Dimension(500,300));
panel.setLayout(new OverlayLayout(panel));
JTextField t = new JTextField(50);
panel.add(t);
frame.add(panel);
frame.pack();
frame.setVisible(true);
GamePanel 只是 JPanel 的一个子类;它不会做任何会影响 JTextField 的事情。
编辑:好的,我现在听说使用默认的 Swing 布局管理器并不是最好的主意。 kleopatra 链接了一个页面,该页面引用了三个第三方布局,这些布局应该可以完成您需要做的几乎所有事情,但是我找不到任何可以让我将文本字段(或其他组件)覆盖到另一个自定义渲染面板上的东西。什么是正确的方法?
【问题讨论】:
-
请编辑您的问题以包含一个Minimal, Complete, Valid Example,以显示您当前的方法。
-
只需在 GamePanel 上使用 FlowLayout。
标签: java swing jtextfield