swing问题,如何选中一个对象,在线等答复 swing 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接示例,可以自己去查看API:import java.awt.Graphics;import java.awt.event.MouseEvent;import java.awt.event.MouseMotionAdapter;import java.awt.geom.Line2D;import java.awt.Graphics2D;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.SwingUtilities;public class Line2DGainedDemo { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new MainFrame(); } }); }}class MainFrame extends JFrame{ private static final long serialVersionUID = -9118470974041744156L; private Line2D line2D = new Line2D.Double(100, 100, 200, 100); public MainFrame(){ initialized(); setSize(500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } private void initialized() { JPanel panel; add(panel = new JPanel(){ private static final long serialVersionUID = 1L; @Override public void paint(Graphics g) { super.paint(g); ((Graphics2D)g).draw(line2D); } }); panel.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseMoved(MouseEvent e) { super.mouseMoved(e); System.out.println(e.getPoint()); if(line2D.intersectsLine(new Line2D.Double(e.getPoint(), e.getPoint()))){ JOptionPane.showMessageDialog(MainFrame.this, "你选择了线条"); } } }); }} Line2D实现的Shape接口定义了contains(Point2D p)、 contains(double x, double y)方法,可以判断是否包含 MouseEvent的getPoint()返回的点 2楼 方法 只有横线的时候 好使,不是横线就不好用了,比如 private Line2D line2D = new Line2D.Double(100, 100, 200, 101);就不好用了 帮我举个java图形界面的例子 jdk1.5下那个子版本比较稳定? 给toolbar加快捷键后,当toolbar隐藏,快捷键无响应 swing 中的模糊进度指示器怎么使用? javase and javame 没分,不能问问题?java 显示powerpoint ? 用JfreeChart 画图时 ,JSP调用Bean出现exception 请高手指点cloneable接口的用法 紧急求助:java中如何取系统时间?--在线等 新手上路,各位大虾指点迷津! 一个非常简单的关于圈复杂度的问题 只指定数据包要发送的端口,怎么接收不了?
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.geom.Line2D;
import java.awt.Graphics2D;import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;public class Line2DGainedDemo { public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new MainFrame();
}
});
}}class MainFrame extends JFrame{
private static final long serialVersionUID = -9118470974041744156L;
private Line2D line2D = new Line2D.Double(100, 100, 200, 100);
public MainFrame(){
initialized();
setSize(500, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} private void initialized() {
JPanel panel;
add(panel = new JPanel(){
private static final long serialVersionUID = 1L; @Override
public void paint(Graphics g) {
super.paint(g);
((Graphics2D)g).draw(line2D);
}
});
panel.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
super.mouseMoved(e);
System.out.println(e.getPoint());
if(line2D.intersectsLine(new Line2D.Double(e.getPoint(), e.getPoint()))){
JOptionPane.showMessageDialog(MainFrame.this, "你选择了线条");
}
}
});
}
}