Java JTextField未出现在GUI中

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

我想在框架的北部区域添加一个JTextField,在东部区域添加一个面板(保存同一JTextField的副本)

但只有北部地区的油田出现。东部区域的面板在那里,但问题是该字段不在面板中

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,但是为什么框架的字段会出现而不是面板的字段?因为您是第二次添加的。首先添加面板后,框架的字段仍然会出现。