我正在制作一个程序,我需要在我的JTextField
JPanel
中JFrame
制作JLabel
。
一切都设置为可见。我可以在同一个JPanel
但不是我的JTextField
中看到JTextField
。
当我启动代码时,我的JFrame
仅在点击时显示。当我将光标越过它时,它变为我知道它在那里。但它就像我的import java.awt.Dimension;
import javax.swing.JTextField;
public class HomeSourceTextBox extends JTextField {
private static final long serialVersionUID = -3387184252168604673L;
Dimension d = new Dimension(600, 20);
public HomeSourceTextBox() {
setSize(d);
setEnabled(true);
setText("Text");
setVisible(true);
}
}
背景色。
{{1}}
答案 0 :(得分:2)
我不确定你在做什么,但我认为你试图让JTextField
更长。
要使JTextField
列为默认列,请使用JTextField(int columns)构造函数,如下所示:
JTextField jtf=new JTextField(10);
正如其他人所建议的那样,请发布SSCCE,以便我们看到具体的问题。
作为一般性说明虽然最好覆盖get|Minimum|Maximum| Preferred |Size
或set|Minimum|Maximum| Preferred |Size
,但LayoutManager
无法更改大小(如果您没有使用Layout
我强烈建议你这样做。)
我更喜欢getPreferredSize()
而文档同意 -
JTextField
docs
getPreferredSize()
返回此TextField所需的首选大小尺寸。如果已设置非零数量的列,则将宽度设置为 列乘以列宽。
答案 1 :(得分:0)
如果设置合适的长度不起作用......
您可以尝试(重新)验证文本框所在的容器。 听起来像对象树,但画布没有更新。在容器上调用repaint()或validate()(也调用repaint())(在你的情况下是JPanel)强制重新绘制。