Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义JPanel对象添加到JFrame时重叠_Java_User Interface - Fatal编程技术网

Java 自定义JPanel对象添加到JFrame时重叠

Java 自定义JPanel对象添加到JFrame时重叠,java,user-interface,Java,User Interface,我正在尝试创建一个自定义计时器,它将记录以天分隔的累计时间。我有一个定制的JPanel,它为我完成所有的定时器工作。我想有一个图形用户界面与这个JPanel交互代表7次。但是,当我将多个自定义JPanel添加到JPanel或JFrame时,它们不会出现。我尝试过设置布局,并将它们设置为我能想到的所有内容,但没有任何效果 这是面板的基本设置: 公共类TimerPane扩展了JPanel{ 私有静态JButton按钮=新JButton(“开始”); 专用静态JLabel标签=新JLabel(“经过的

我正在尝试创建一个自定义计时器,它将记录以天分隔的累计时间。我有一个定制的JPanel,它为我完成所有的定时器工作。我想有一个图形用户界面与这个JPanel交互代表7次。但是,当我将多个自定义JPanel添加到JPanel或JFrame时,它们不会出现。我尝试过设置布局,并将它们设置为我能想到的所有内容,但没有任何效果

这是面板的基本设置:

公共类TimerPane扩展了JPanel{
私有静态JButton按钮=新JButton(“开始”);
专用静态JLabel标签=新JLabel(“经过的时间:”);
私有静态JLabel tLabel=新JLabel(“0:0:0”);
私有静态JLabel title=新JLabel(“计时器”);
公共计时器页(){
addActionListener(new ButtonListener());
本条增补(标题);
添加(标签);
添加(tLabel);
这个。添加(按钮);
此.set不透明(false);
此.setPreferredSize(新维度(100100));
此设置最大尺寸(新尺寸(100100));
}
}
这是我最近一次尝试让JPanel显示多次(此处仅显示两次):

publicstaticvoidmain(字符串[]args){
JFrame=新JFrame(“计时器”);
JPanel面板=新的JPanel();
框架。设置首选尺寸(新尺寸(700110));
panel.setLayout(新的BorderLayout());
panel.add(new TimerPane(),BorderLayout.EAST);
panel.add(new TimerPane(),BorderLayout.WEST);
frame.getContentPane().add(面板);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

在此之后执行的GUI是700x110,其中最左边的100x100仅用于我的一个TimerPane面板。我也在同一个代码上尝试了GridLayout,但是只有第二个“点”中的TimerPane显示出来。有什么建议吗?

首先,请从成员变量中删除
静态
按钮
标签
标签
标题
。否则,如果它们是
静态的
,则意味着它们由所有
TimerPane
实例共享。 现在您将看到2个计时器面板

接下来,您可以将
BorderLayout
更改为
FlowLayout
,例如,并添加
TimerPane
的多个实例

panel.setLayout(new FlowLayout(FlowLayout.LEFT));

panel.add(new TimerPane());
panel.add(new TimerPane());

谢谢正是静态导致了我的问题——在将主方法移出该类并转移到另一个类后,忘记将它们切换回原来的状态。