Java JTextField未出现在GUI中
我想在框架的北部区域添加一个JTextField,在东部区域添加一个面板(保存同一JTextField的副本) 但只有北部地区的油田出现。东部区域的面板在那里,但问题是该字段不在面板中Java JTextField未出现在GUI中,java,swing,user-interface,jtextfield,Java,Swing,User Interface,Jtextfield,我想在框架的北部区域添加一个JTextField,在东部区域添加一个面板(保存同一JTextField的副本) 但只有北部地区的油田出现。东部区域的面板在那里,但问题是该字段不在面板中 import java.awt.*; import javax.swing.*; public class Gui { public static void main(String[] args) { JFrame frame = new JFrame(); frame
import java.awt.*;
import javax.swing.*;
public class Gui {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.getContentPane().setBackground(Color.BLACK);
panel.setBackground(Color.YELLOW);
JTextField field = new JTextField("Your name");
panel.add(field);
frame.add(BorderLayout.NORTH, field);
frame.add(BorderLayout.EAST, panel);
frame.setSize(300, 300);
frame.setVisible(true);
}
}
如果需要两个独立的字段,则需要两个独立的
JTextField
对象:尝试添加
JTextField field2 = new JTextField("Your second field");
并将框架上的第一个add()
调用更改为
frame.add(BorderLayout.NORTH, field2);
这将产生
我想这就是你想要的。你不能在2个位置设置相同的jtextfield,但你可以共享相同的文档。你需要创建一个新的。为什么你需要在2个位置添加相同的jtextfield?你想做什么?谢谢,我忘了Java是按值传递的。@lddangsta这不完全是问题,问题是,组件只能驻留在单个父容器中,一次向多个容器添加组件的单个实例是不可能的OK,但是为什么框架的字段会出现而不是面板的字段?因为您是第二次添加的。首先添加面板后,框架的字段仍然会出现。