如何在我的小程序以北的位置添加多个文本字段
How do I add more than one text field at position north of my applet
我试图在我的小程序顶部总共创建三个文本字段,两个应该相互对齐,一个在它们中间的正下方,所以它应该看起来像这样:-_-
但是,我确定您只能在一个位置分配一个组件,所以我该怎么做呢
public class JTextFieldTest extends JApplet {
public String s;
public TextField T1;
public TextField T2;
public void init(){
TextField T1 = new TextField(20);
TextField T2 = new TextField(20);
JButton b1 = new JButton("Add word to list ");
GreetingPanel panel = new GreetingPanel();
add(T1, BorderLayout.NORTH);
add(T2, BorderLayout.NORTH);
add(panel, BorderLayout.CENTER);
add(b1, BorderLayout.SOUTH);
}
class GreetingPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.blue);
}}
public void paint(Graphics g){
super.paint(g);
g.drawString(s, 20, 20);
}
}
您可以在布局中嵌套布局。因此,如果您希望 BorderLayout
的北部有两个按钮,请采用适合您的风格的布局,然后将其放入。例如在 BorderLayout 中使用 BorderLayout,您将再次在 rootLayout 的北部获得更多 BorderLayout 的所有位置!
编辑
所以如果你是全新的,我建议使用 JavaFX
而不是 Swing
。在那里你可以轻松实现你的目标。
HBox hBox = new HBox();
BorderPane mainPane = new BorderPane();
mainPane.setTop(hBox);
hBox.getChildren().addAll(new TextField(), new Label("hi", ...);
到处都有很多关于 JavaFX 的教程,例如this one here for layouts from Oracle
我试图在我的小程序顶部总共创建三个文本字段,两个应该相互对齐,一个在它们中间的正下方,所以它应该看起来像这样:-_-
但是,我确定您只能在一个位置分配一个组件,所以我该怎么做呢
public class JTextFieldTest extends JApplet {
public String s;
public TextField T1;
public TextField T2;
public void init(){
TextField T1 = new TextField(20);
TextField T2 = new TextField(20);
JButton b1 = new JButton("Add word to list ");
GreetingPanel panel = new GreetingPanel();
add(T1, BorderLayout.NORTH);
add(T2, BorderLayout.NORTH);
add(panel, BorderLayout.CENTER);
add(b1, BorderLayout.SOUTH);
}
class GreetingPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.blue);
}}
public void paint(Graphics g){
super.paint(g);
g.drawString(s, 20, 20);
}
}
您可以在布局中嵌套布局。因此,如果您希望 BorderLayout
的北部有两个按钮,请采用适合您的风格的布局,然后将其放入。例如在 BorderLayout 中使用 BorderLayout,您将再次在 rootLayout 的北部获得更多 BorderLayout 的所有位置!
编辑
所以如果你是全新的,我建议使用 JavaFX
而不是 Swing
。在那里你可以轻松实现你的目标。
HBox hBox = new HBox();
BorderPane mainPane = new BorderPane();
mainPane.setTop(hBox);
hBox.getChildren().addAll(new TextField(), new Label("hi", ...);
到处都有很多关于 JavaFX 的教程,例如this one here for layouts from Oracle