让swing包下的Jpanel支持鼠标调整大小 我现在使用NetBeans开发一个GUI,可是不知道怎么才能让Jpanel支持鼠标调整大小,请问哪位可以给点建议,小弟不胜感激 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 让JPanel响应Mouse的事件, 比如说mouseMoved()中测试鼠标是否在边缘,如果是则在mouseDraged()中随鼠标位置改变JPanel大小 大概写了一个,已经能改变大小,你可以按你的要求修改下面是Panelimport java.awt.Cursor;import java.awt.Graphics;import java.awt.Rectangle;import java.awt.Dimension;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import javax.swing.JPanel;import javax.swing.border.TitledBorder;public class MyPanel extends JPanel implements MouseListener, MouseMotionListener{ private Rectangle outer_rect = new Rectangle(); private Rectangle inner_rect = new Rectangle(); private boolean resizeable = false; public MyPanel() { super(); this.setSize(30, 30); this.setBorder(new TitledBorder("")); this.addMouseListener(this); this.addMouseMotionListener(this); } public void mouseEntered(MouseEvent me) {} public void mouseExited(MouseEvent me) {} public void mousePressed(MouseEvent me) { if ((outer_rect.contains(me.getPoint())) && (!inner_rect.contains(me.getPoint()))) resizeable = true; else resizeable = false; } public void mouseReleased(MouseEvent me) {} public void mouseClicked(MouseEvent me) {} public void mouseMoved(MouseEvent me) { if ((outer_rect.contains(me.getPoint())) && (!inner_rect.contains(me.getPoint()))) this.setCursor(new Cursor(Cursor.MOVE_CURSOR)); else this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } public void mouseDragged(MouseEvent me) { if (resizeable) this.setSize(new Dimension(me.getX()-this.getX(), me.getY()-this.getY())); } protected void paintComponent(Graphics g) { super.paintComponent(g); outer_rect = this.getVisibleRect(); inner_rect.setRect(outer_rect.x+1, outer_rect.y+1, outer_rect.width-3, outer_rect.height-3); }}下面是测试用的Frameimport javax.swing.JFrame;public class TestFrame extends JFrame { private MyPanel myPanel = new MyPanel(); public TestFrame() { this.setSize(400, 300); this.setLayout(null); this.getContentPane().add(myPanel); this.setVisible(true); } public static void main(String[] args) { TestFrame tf = new TestFrame(); }} java运算符优先级 初学者求程序如何表达 帮忙 帮忙有实力的进 菜鸟让哦 学习java无从下手,谁能给我点指点? 一个关于编码的问题问题 如何使用 String 类的 equals 方法 jar是什么玩意,请各位帮帮忙,我刚学JAVA 请问如何给Applet签名? 给斑竹hexiaofeng 有关SWING方面的书籍? 请教一个程序 关于 Java 虚拟机多线程与操作系统多线程的问题
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;public class MyPanel extends JPanel implements MouseListener, MouseMotionListener{ private Rectangle outer_rect = new Rectangle();
private Rectangle inner_rect = new Rectangle();
private boolean resizeable = false;
public MyPanel() {
super();
this.setSize(30, 30);
this.setBorder(new TitledBorder(""));
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
public void mouseEntered(MouseEvent me) {}
public void mouseExited(MouseEvent me) {}
public void mousePressed(MouseEvent me) {
if ((outer_rect.contains(me.getPoint())) && (!inner_rect.contains(me.getPoint())))
resizeable = true;
else
resizeable = false;
}
public void mouseReleased(MouseEvent me) {}
public void mouseClicked(MouseEvent me) {}
public void mouseMoved(MouseEvent me) {
if ((outer_rect.contains(me.getPoint())) && (!inner_rect.contains(me.getPoint())))
this.setCursor(new Cursor(Cursor.MOVE_CURSOR));
else
this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
public void mouseDragged(MouseEvent me) {
if (resizeable)
this.setSize(new Dimension(me.getX()-this.getX(), me.getY()-this.getY()));
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
outer_rect = this.getVisibleRect();
inner_rect.setRect(outer_rect.x+1, outer_rect.y+1, outer_rect.width-3, outer_rect.height-3);
}}下面是测试用的Frameimport javax.swing.JFrame;public class TestFrame extends JFrame {
private MyPanel myPanel = new MyPanel();
public TestFrame() {
this.setSize(400, 300);
this.setLayout(null);
this.getContentPane().add(myPanel);
this.setVisible(true);
}
public static void main(String[] args) {
TestFrame tf = new TestFrame();
}}