java 标题栏_Java 自定义窗体(标题栏、窗体背景)

package cn.chengmaoning.customframe;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.EventQueue;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.Image;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import javax.jws.Oneway;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JToggleButton;

public class ControlFormStatus extends JFrame {

/**

*

*/

private static final long serialVersionUID = -2214759764324605473L;

private JPanel contentPane;

private Point pressedPoint;

/**

* @param args

*/

public static void main(String[] args) {

// TODO 自动生成的方法存根

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

// TODO 自动生成的方法存根

try {

ControlFormStatus frame = new ControlFormStatus();

frame.setVisible(true);

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

}

});

}

/**

* Constructor

*/

public ControlFormStatus(){

setUndecorated(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setBorder(null);

contentPane.setLayout(new BorderLayout(0, 0));

setContentPane(contentPane);

BackgroundPanel topPanel = new BackgroundPanel();

topPanel.addMouseMotionListener(new MouseMotionAdapter() {

@Override

public void mouseDragged(MouseEvent e){

do_topPanel_mouseDragged(e);

}

});

topPanel.addMouseListener(new MouseAdapter() {

@Override

public void mousePressed(MouseEvent e) {

// TODO 自动生成的方法存根

do_topPanel_mousePressed(e);

}

});

Image centerImage = new ImageIcon(getClass().getResource("frameTop.png")).getImage();

Dimension dimension = new Dimension(centerImage.getWidth(this), centerImage.getHeight(this));

topPanel.setPreferredSize(dimension);

topPanel.setImage(centerImage);

contentPane.add(topPanel,BorderLayout.NORTH);

topPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 5, 5));

JPanel panel = new JPanel();

panel.setPreferredSize(new Dimension(60, 22));

panel.setOpaque(false);

topPanel.add(panel);

panel.setLayout(new GridLayout(1, 0, 0, 0));

JButton button = new JButton("");

button.setRolloverIcon(new ImageIcon(ControlFormStatus.class.getResource("minBH.jpg")));

button.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO 自动生成的方法存根

do_button_actionPerformed(e);

}

});

button.setFocusPainted(false);

button.setBorderPainted(false);

button.setContentAreaFilled(false);

button.setIcon(new ImageIcon(ControlFormStatus.class.getResource("minB.jpg")));

panel.add(button);

JToggleButton button_1 = new JToggleButton("");

button_1.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent e) {

// TODO 自动生成的方法存根

do_button_1_itemStateChanged(e);

}

});

button_1.setRolloverIcon(new ImageIcon(ControlFormStatus.class.getResource("maxBH.jpg")));

button_1.setRolloverSelectedIcon(new ImageIcon(ControlFormStatus.class.getResource("maxBH.jpg")));

button_1.setIcon(new ImageIcon(getClass().getResource("maxB.jpg")));

button_1.setContentAreaFilled(false);

button_1.setBorderPainted(false);

button_1.setFocusPainted(false);

panel.add(button_1);

JButton button_2 = new JButton("");

button_2.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO 自动生成的方法存根

do_button_2_actionPerformed(e);

}

});

button_2.setRolloverIcon(new ImageIcon(getClass().getResource("closeBH.jpg")));

button_2.setIcon(new ImageIcon(getClass().getResource("closeB.jpg")));

button_2.setFocusPainted(false);

button_2.setContentAreaFilled(false);

button_2.setBorderPainted(false);

panel.add(button_2);

BackgroundPanel baclBackgroundPanel_1 = new BackgroundPanel();

Image topImage = new ImageIcon(getClass().getResource("frameCenter.png")).getImage();

baclBackgroundPanel_1.setImage(topImage);

contentPane.add(baclBackgroundPanel_1, BorderLayout.CENTER);

}

protected void do_button_2_actionPerformed(ActionEvent e) {

// TODO 自动生成的方法存根

dispose();

}

protected void do_button_1_itemStateChanged(ItemEvent e) {

// TODO 自动生成的方法存根

if (e.getStateChange() == ItemEvent.SELECTED) {

setExtendedState(MAXIMIZED_BOTH);

} else {

setExtendedState(NORMAL);

}

}

protected void do_button_actionPerformed(ActionEvent e) {

// TODO 自动生成的方法存根

setExtendedState(ICONIFIED);

}

protected void do_topPanel_mousePressed(MouseEvent e) {

// TODO 自动生成的方法存根

pressedPoint = e.getPoint();

}

protected void do_topPanel_mouseDragged(MouseEvent e) {

// TODO 自动生成的方法存根

Point point = e.getPoint();

Point locationPoint = getLocation();

int x = locationPoint.x + point.x - pressedPoint.x;

int y = locationPoint.y + point.y - pressedPoint.y;

setLocation(x, y);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值