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);
}
}
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);
}
}
相关文章推荐
- [原创]java局域网聊天系统
- java很神奇 用swing制作欢迎屏幕
- 在 Linux 中如何移动文件
- PowerShell移动目录中指定文件的方法(非全部文件)
- 鼠标触发移动的分层菜单 层菜单moveMenu
- javascript实现图片跟随鼠标移动效果的方法
- JavaScript Select和Option列表元素上下左右移动
- C#中无边框窗体移动的简单实例
- c#文件的复制,移动,创建(实例代码)
- 多选列表框动态添加,移动,删除,全选等操作的简单实例
- jQuery实现div浮动层跟随页面滚动效果
- javascript:文字不间断向左移动的实例代码
- JS控制对象移动效果
- 移动指定文件夹内的全部文件
- java基于swing实现的五子棋游戏代码
- PHP递归复制、移动目录的自定义函数分享
- 移动Web中图片自适应的两种JavaScript解决方法
- 2014值得推荐的10个移动 Web 应用程序开发框架
- JavaScript弹出新窗口并控制窗口移动到指定位置的方法
- Jquery实现鼠标移动放大图片功能实例