我正在创建一个简单的应用程序,以便计算每秒的点击次数。代码如下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.border.Border;
public class CPSFrame implements ActionListener {
JFrame frame;
JPanel borderPanel, settings;
JButton click;
String[] timesList = {"5","10","15","20","25","30"};
JComboBox times;
JTextField showCps;
public CPSFrame() {
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
CPSFrame c = new CPSFrame();
c.drawGui();
}
});
}
public void drawGui() {
frame = new JFrame();
borderPanel = new JPanel();
settings = new JPanel();
click = new JButton("Click me!");
times = new JComboBox(timesList);
showCps = new JTextField();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("CPS Calculator");
{
borderPanel.setLayout(new BorderLayout(0, 0));
frame.add(borderPanel);
{
borderPanel.add(click);
settings.setLayout(new GridLayout(1, 0, 0, 0));
borderPanel.add(settings, BorderLayout.SOUTH);
{
settings.add(times);
settings.add(showCps);
}
}
}
frame.pack();
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent evt) {
}
}
出于某种原因,如果我调整JFrame的大小并按click
,则times
和showCPS
都会消失。我觉得这与我设置BorderLayout的方式有关,但我不确定。
以下是video正在发生的事情。
编辑:更新了代码并添加了正在发生的事情的视频。
答案 0 :(得分:-1)
对我来说很好(Java 1.6,Win),调整大小和点击后没有任何消失。尝试明确指定c.click的位置c.borderPanel.add(c.click,BorderLayout.CENTER); 也许有一些Java实现(平台,版本),其中BorderLayout不喜欢未指定的位置。