窗体的拖动问题 我给窗体设了this.setUndecorated(true)这个属性去了边框后窗体就没办法拖动了,有没有什么方法可以使鼠标点窗体内部也能随意拖动窗体呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import javax.swing.JButton;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.UIManager;public class Test extends JFrame implements MouseListener, MouseMotionListener { private static final long serialVersionUID = -7376696426025549528L; private JPanel pane = null; private int mouseX = 0, mouseY = 0; public Test() { super(); this.setUndecorated(true); this.lookAndFeel(); this.addMouseListener(this); this.addMouseMotionListener(this); JButton button = new JButton("关闭窗口"); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { System.exit(0); }}); pane = new JPanel(); pane.setLayout(new FlowLayout()); pane.add(button); this.getContentPane().add(pane); this.setSize(300, 200); this.setLocationRelativeTo(null); this.setVisible(true); } public static void main(String[] arg) { new Test(); } private void lookAndFeel() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { mouseX = e.getX(); mouseY = e.getY(); } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e) { if (e.getModifiers() == MouseEvent.BUTTON1_MASK) { this.setLocation(this.getX() + e.getX() - mouseX, this.getY() + e.getY() - mouseY); } } public void mouseMoved(MouseEvent e) { }} 将该窗体implements DragSource等接口, 把窗体作为一个可拖动的对象,然后获取光标move的位置,相应的把窗体的location设置一下。没办法,就只有这么麻烦,去了边框还要保留拖动真的是比较怪异的需求。 windows 的系列产品(如 xp、2000)哪些自带能运行 applet 的 jvm 环境? Jdom的问题啊 高手进来:代码解释 买《Java2核心技术 卷一》还是买《java编程思想》 OJB的debug选项 如何将一个String转化为一个Date??? 各位采用mvc模式都吸取哪些地方的例子??是自己设计的么?(B/S) 请问JAVA中,可不可以用消息来通讯? 聊天室的难题? 如何将我要在APPLET中添加的LABEL放置到一定的位置(我的分不多) 关于在FOR循环里变量定义 一个i/o方面的问题
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.UIManager;public class Test extends JFrame implements MouseListener, MouseMotionListener {
private static final long serialVersionUID = -7376696426025549528L; private JPanel pane = null;
private int mouseX = 0, mouseY = 0; public Test() {
super();
this.setUndecorated(true);
this.lookAndFeel();
this.addMouseListener(this);
this.addMouseMotionListener(this);
JButton button = new JButton("关闭窗口");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}});
pane = new JPanel();
pane.setLayout(new FlowLayout());
pane.add(button);
this.getContentPane().add(pane);
this.setSize(300, 200);
this.setLocationRelativeTo(null);
this.setVisible(true);
} public static void main(String[] arg) {
new Test();
}
private void lookAndFeel() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
} public void mouseClicked(MouseEvent e) {
} public void mousePressed(MouseEvent e) {
mouseX = e.getX();
mouseY = e.getY();
} public void mouseReleased(MouseEvent e) {
} public void mouseEntered(MouseEvent e) {
} public void mouseExited(MouseEvent e) {
} public void mouseDragged(MouseEvent e) {
if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {
this.setLocation(this.getX() + e.getX() - mouseX, this.getY() + e.getY() - mouseY);
}
} public void mouseMoved(MouseEvent e) {
}}