该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package demo.swing;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JWindow;
public class DemoWindow extends JWindow implements MouseListener,
MouseMotionListener, ComponentListener, ActionListener {
private Icon northwestIcon;
private Icon northeastIcon;
private Icon northIcon;
private Icon southwestIcon;
private Icon southeastIcon;
private Icon southIcon;
private Icon westIcon;
private Icon eastIcon;
private Icon closeIcon;
private Icon closeoverIcon;
private Icon closedownIcon;
// point
private Point location;
private Point size;
// cursor
private Cursor sizeCursor = new Cursor(Cursor.SE_RESIZE_CURSOR);
private Cursor moveCursor = new Cursor(Cursor.MOVE_CURSOR);
private Cursor defaultCursor = new Cursor(Cursor.DEFAULT_CURSOR);
//
private ContentPane contentPane;
private JButton closeButton;
// color
private Color color1 = new Color(254, 254, 254);
private Color color2 = new Color(204, 220, 247);
private Color titleColor = new Color(128, 128, 128);
// title bar
private String title;
private Icon icon;
/**
* Create the frame
*/
public DemoWindow() {
super();
initIcon();
initComponent();
contentPane.addComponentListener(this);
contentPane.addMouseListener(this);
contentPane.addMouseMotionListener(this);
//
}
public void setTitle(String title) {
this.title = title;
contentPane.repaint();
}
public void setIcon(Icon icon) {
this.icon = icon;
}
private void initComponent() {
contentPane = new ContentPane();
setContentPane(contentPane);
closeButton = new JButton();
closeButton.setBorder(BorderFactory.createEmptyBorder());
closeButton.setIcon(closeIcon);
closeButton.setRolloverIcon(closeoverIcon);
closeButton.setPressedIcon(closedownIcon);
closeButton.addActionListener(this);
contentPane.add(closeButton);
}
private void initIcon() {
northwestIcon = new ImageIcon(DemoWindow.class
.getResource("northwest.png"));
northeastIcon = new ImageIcon(DemoWindow.class
.getResource("northeast.png"));
northIcon = new ImageIcon(DemoWindow.class.getResource("north.png"));
southwestIcon = new ImageIcon(DemoWindow.class
.getResource("southwest.png"));
southeastIcon = new ImageIcon(DemoWindow.class
.getResource("southeast.png"));
southIcon = new ImageIcon(DemoWindow.class.getResource("south.png"));