[java]代码库
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SwingApplication {
private static String labelPrefix = "Number of button clicks: ";
private int numClicks = 0; // 计数器,计算点击次数
public Component createComponents() {
final JLabel label = new JLabel(labelPrefix + "0 ");
JButton button = new JButton("I'm a Swing button!");
button.setMnemonic(KeyEvent.VK_I); // 设置按钮的热键为'I'
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
numClicks++;
label.setText(labelPrefix + numClicks);
// 显示按钮被点击的次数
}
});
label.setLabelFor(button);
/* 在顶层容器及其内容之间放置空间的常用办法是把内容添加到Jpanel上,而Jpanel本身没有边框的。 */
JPanel pane = new JPanel();
pane.setBorder(BorderFactory.createEmptyBorder(30, // top
30, // left
10, // bottom
30) // right
);
pane.setLayout(new GridLayout(0, 1)); // 单列多行
pane.add(button);
pane.add(label);
return pane;
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager
.getCrossPlatformLookAndFeelClassName());
// 设置窗口风格
} catch (Exception e) {
}
// 创建顶层容器并添加内容.
JFrame frame = new JFrame("SwingApplication");
SwingApplication app = new SwingApplication();
Component contents = app.createComponents();
frame.getContentPane().add(contents, BorderLayout.CENTER);
// 窗口设置结束,开始显示
frame.addWindowListener(new WindowAdapter() {
// 匿名类用于注册监听器
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.pack();
frame.setVisible(true);
}
}