楼主,我想你的表述让我们错乱了 是否就是一个无标题的窗口,但是可以移动 若果是的话,给你一个思路,继承JWindow 窗体为一个白板,再自己添加鼠标监听类 来实现移动 package com.kiritor;import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter;import javax.swing.JWindow;public class PFrame extends JWindow { /** * */ private static final long serialVersionUID = 1L; private boolean flag = false; public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } private int xx; private int yy; private boolean isDraging; public PFrame() { } public PFrame(int x, int y) { setLocation(x, y); } public void showUI() { setSize(150, 150); setLayout(null); setAlwaysOnTop(true); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { requestFocus(); isDraging = true; xx = e.getX(); yy = e.getY(); } public void mouseReleased(MouseEvent e) { isDraging = false; } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub setFlag(true);// 窗体内部暂时设置为不能取色 } }); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { if (isDraging) { int left = getLocation().x; int top = getLocation().y; setLocation(left + e.getX() - xx, top + e.getY() - yy); } } }); setVisible(true); } public static void main(String[] args) { PFrame frame = new PFrame(); frame.showUI(); }}
黑色框窗体写法的关键代码如下: JFrame中: setUndecorated(true);// remove the system border com.sun.awt.AWTUtilities.setWindowOpaque(this, false);// make the frame transparent 第二行代码若编译器报错,那是因为新的JDK中去除了这个包。使用老一点的JDK,1.6或1.5就可以了。 上述两行代码的效果是:窗口的系统边框没了,整个窗口可以变透明了。 剩下的事,就是写一个拥有黑色边框的JPanel,加入此JFrame。 其他的,你应该都会吧?
是否就是一个无标题的窗口,但是可以移动
若果是的话,给你一个思路,继承JWindow
窗体为一个白板,再自己添加鼠标监听类
来实现移动
package com.kiritor;import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;import javax.swing.JWindow;public class PFrame extends JWindow { /**
*
*/
private static final long serialVersionUID = 1L;
private boolean flag = false; public boolean isFlag() {
return flag;
} public void setFlag(boolean flag) {
this.flag = flag;
} private int xx;
private int yy;
private boolean isDraging; public PFrame() {
} public PFrame(int x, int y) {
setLocation(x, y);
} public void showUI() {
setSize(150, 150);
setLayout(null);
setAlwaysOnTop(true);
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
requestFocus();
isDraging = true;
xx = e.getX();
yy = e.getY();
} public void mouseReleased(MouseEvent e) {
isDraging = false;
} @Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
setFlag(true);// 窗体内部暂时设置为不能取色
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
if (isDraging) {
int left = getLocation().x;
int top = getLocation().y;
setLocation(left + e.getX() - xx, top + e.getY() - yy);
}
}
}); setVisible(true); } public static void main(String[] args) {
PFrame frame = new PFrame();
frame.showUI(); }}
JFrame中:
setUndecorated(true);// remove the system border
com.sun.awt.AWTUtilities.setWindowOpaque(this, false);// make the frame transparent
第二行代码若编译器报错,那是因为新的JDK中去除了这个包。使用老一点的JDK,1.6或1.5就可以了。
上述两行代码的效果是:窗口的系统边框没了,整个窗口可以变透明了。
剩下的事,就是写一个拥有黑色边框的JPanel,加入此JFrame。
其他的,你应该都会吧?