您的位置:首页 > 编程语言 > Java开发

JFrame重绘去掉默认的标题图标等

2015-06-21 16:36 411 查看
    此篇文章旨在帮组学习Swing的人,我只想说最关键的部分:

    

    this.setUndecorated(true); // 去掉窗口的装饰 

话不多说,代码如下,简单易懂,不懂的去自杀:

package home;

import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRootPane;

public class MyFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = -4516388468623844722L;
int xOld = 0;
int yOld = 0;

public MyFrame(String title, int width, int height) {
super(title);
this.getContentPane().add(new JLabel("Just a test."));
this.setUndecorated(true); // 去掉窗口的装饰
this.getRootPane().setWindowDecorationStyle(JRootPane.NONE);// 采用指定的窗口装饰风格
this.setSize(width, height);

this.setLayout(null);

// 以下鼠标监听为实现窗口移动
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
xOld = e.getX();
yOld = e.getY();
}
}

);
this.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
int xOnScreen = e.getXOnScreen();
int yOnScreen = e.getYOnScreen();

int xLo = xOnScreen - xOld;
int yLo = yOnScreen - yOld;

MyFrame.this.setLocation(xLo, yLo);
}

}

);

}

public static void main(String[] args) {
JFrame frame = new MyFrame("test", 500, 300);
JPanel p = new JPanel(null);
frame.add(p);
p.setBounds(0, 0, frame.getWidth(), frame.getHeight());
p.setBackground(Color.gray);
frame.setVisible(true);
}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息