Swing是Java一个陈旧的GUI工具包,作为Java基础类的一部分,也是一个可靠的稳定的工具包,无需担心平台适应性。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class Desktop extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private JDesktopPane jDesktopPane = new JDesktopPane();
private JLabel jLabelFooterState = new JLabel("Current system user is: " + System.getProperty("user.name"));
/***
* 构造函数,直接作为主控件进行显示。
*/
public Desktop() {
// 标题
this.setTitle("Swing Desktop Application Sample");
// 屏幕大小
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// 桌面在屏幕居中。
this.setBounds(
screenSize.width / 8, screenSize.height / 8,
screenSize.width * 3 / 4, screenSize.height * 3 / 4
);
// 容器窗格
Container pane = this.getContentPane();
// 初始化桌面面板
jDesktopPane.setBackground(Color.decode("#4169aa"));
pane.add(jDesktopPane, BorderLayout.CENTER);
// 初始化底部状态栏
pane.add(jLabelFooterState, BorderLayout.SOUTH);
// 停止直接关闭窗口
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
// 窗口事件监听
WindowListener listener = new WindowAdapter() {
public void windowClosing(WindowEvent ev) {
if (confirmBeforeExit()) {
System.exit(0);
}
}
};
this.addWindowListener(listener);
}
/***
* 退出前确认。
*
* @return
*/
public boolean confirmBeforeExit() {
// 确认是否退出程序
boolean confirmed = JOptionPane.showConfirmDialog(
this, "Quit Application ?", "Please confirm",
JOptionPane.YES_NO_OPTION) == 0;
return confirmed;
}
public static void main(String[] args) {
// 创建桌面主控件并显示。
new Desktop().setVisible(true);
}
}