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