如何在Java GUI中设置文本字段位置?
我试过了:
public Apletas()
{
inputLine.setLocation(null);
inputLine.setLocation(80, 80);
add(inputLine);
}
但不行。
答案 0 :(得分:1)
首先,将小程序的布局设置为null
:
...
public void init()
{
setLayout(null);
}
...
答案 1 :(得分:1)
忽略setLocation()
/ setBounds()
& 最特别 setLayout(null)
。放弃那些进入那里的所有希望(以及最后的理智残余)。
使用布局管理器设置组件的位置。
对于组件的大小调整,通常在构造函数中提供适当的参数(例如new JTextArea(rows, columns)
),或者在某些情况下,使用布局约束(例如BorderLayout.CENTER
)就足够了。
对于组件之间的间距,请查看javax.swing.border
包和布局管理器构造函数的参数,或者在某些情况下,查看布局约束(例如GridBagLayout
& GridBagConstraints
)。
示例:强>
//<applet code='Apletas' width='600' height='400'></applet>
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class Apletas extends JApplet {
private JTextField inputLine;
public Apletas()
{
inputLine = new JTextField(20);
JPanel mainGui = new JPanel(new BorderLayout(20,20));
mainGui.setBorder(new EmptyBorder(80,80,80,80));
mainGui.add(inputLine, BorderLayout.NORTH);
mainGui.add(new JScrollPane(new JTextArea(20,10)), BorderLayout.CENTER);
JTree tree = new JTree();
tree.expandRow(2);
mainGui.add(new JScrollPane(tree), BorderLayout.WEST);
setContentPane(mainGui);
validate();
}
}
编译&amp;运行强>
prompt> javac Apletas.java
prompt> appletviewer Apletas.java
另见
Laying Out Components Within a Container&amp; Java教程中的How to Use Borders。
答案 2 :(得分:0)
我不确定你为什么要.setLocation(null)
在文本字段上然后重新设置它。
是否在其他地方声明了inputLine(在这种情况下,请在此处发布完整代码)或者您是否遗漏了像
这样的行TextField inputLine = new TextField("Hello world");
答案 3 :(得分:0)
您必须使用代码
取消默认布局setLayout(null);
然后可以使用setBounds方法来定位你的秋千 它就像这样
JTextField jt = new JTextField();
jt.setBounds(x,y,width,height);