Swing 文本字段可见性问题
Swing text field visibility issue
我正在尝试制作一个框架并在其中添加一个文本字段。
为此,我使用了 JTextField
。但是没有出现。
代码
import java.awt.*;
import javax.swing.*;
class Tst
{
JFrame f;
JTextField tf;
public Tst()
{
f=new JFrame();
tf=new JTextField(10);
f.setSize(400,400);
f.add(tf);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String s[])
{
new Tst();
}
}
正如您所说的那样,使用适当的 LayoutManager for example FlowLayout:
不要使用 null 布局,参见 Why is it frowned upon to use a null layout in swing and Null layout is Evil
import java.awt.*;
import javax.swing.*;
class Tst {
JFrame f;
JTextField tf;
public Tst() {
f=new JFrame();
tf=new JTextField(10);
f.setLayout(new FlowLayout()); //Add a proper layout BEFORE adding elements to it. (Even if you need it to be null (Which I don't recommend) you need to write it here).
f.add(tf);
f.pack(); //Use pack(); so Swing can render the size of your window to it's preferred size
//f.setSize(400, 400); //If you really need to set a window size, do it here
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Don't forget this line.
}
public static void main(String s[]) {
new Tst();
}
}
如果您不想使用布局管理器,则需要使用 JTextField
的 setBounds(x, y, width, height)
方法设置其边界,其中 x
和 y
是文本字段在 JFrame
:
中的位置
tf.setBounds(100 , 100 , 100 , 20 );
首先为框架设置布局,然后向其添加元素和组件,如完整代码所示:
import javax.swing.*;
class Tst
{
public Tst()
{
JTextField tf = new JTextField(10);
tf.setBounds(100 , 100 , 100 , 20 );
JFrame f = new JFrame();
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
f.add(tf);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String s[])
{
new Tst();
}
}
我正在尝试制作一个框架并在其中添加一个文本字段。
为此,我使用了 JTextField
。但是没有出现。
代码
import java.awt.*;
import javax.swing.*;
class Tst
{
JFrame f;
JTextField tf;
public Tst()
{
f=new JFrame();
tf=new JTextField(10);
f.setSize(400,400);
f.add(tf);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String s[])
{
new Tst();
}
}
正如您所说的那样,使用适当的 LayoutManager for example FlowLayout:
不要使用 null 布局,参见 Why is it frowned upon to use a null layout in swing and Null layout is Evil
import java.awt.*;
import javax.swing.*;
class Tst {
JFrame f;
JTextField tf;
public Tst() {
f=new JFrame();
tf=new JTextField(10);
f.setLayout(new FlowLayout()); //Add a proper layout BEFORE adding elements to it. (Even if you need it to be null (Which I don't recommend) you need to write it here).
f.add(tf);
f.pack(); //Use pack(); so Swing can render the size of your window to it's preferred size
//f.setSize(400, 400); //If you really need to set a window size, do it here
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Don't forget this line.
}
public static void main(String s[]) {
new Tst();
}
}
如果您不想使用布局管理器,则需要使用 JTextField
的 setBounds(x, y, width, height)
方法设置其边界,其中 x
和 y
是文本字段在 JFrame
:
tf.setBounds(100 , 100 , 100 , 20 );
首先为框架设置布局,然后向其添加元素和组件,如完整代码所示:
import javax.swing.*;
class Tst
{
public Tst()
{
JTextField tf = new JTextField(10);
tf.setBounds(100 , 100 , 100 , 20 );
JFrame f = new JFrame();
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
f.add(tf);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String s[])
{
new Tst();
}
}