我想制做这么一个jlist:有三个选项 abc;当我点在这三个选项的上的时候,呈现选中状态;当我点在jlist空白处(没有选项的地方),取消选中状态。现在的问题是,我用e.getpoint()返回鼠标点击的坐标,用什么方法判断这个坐标是不是在空白处呢?
解决方案 »
- 毕设题目,请大家提点意见,谢谢!
- [紧急求助] JAVA 3DES加密问题
- 有问题~~~帮帮忙~~~~~~~~~~~着急啊~~~~~~~~~~~~~~
- 在JAVA中用于解码HTML代码中& > '这样字符的类是什么?
- 怎样在JAVA里实现获取指定服务器上所有可用数据库的列表??
- 数据太长问题:数据大小超出此类型的最大值
- 如何克隆一个对象
- 如何避免反射
- 请问如何把StringBuffer 的对象转化成一个InputStream 的对象,或者InputStream 子类的对象也可以!
- 我用jdk做了一个程序,不知怎样能变成EXE文件(因为运行速度太慢)
- 下载的飞机定票系统(java)无法运行
- 急急,关于BigInteger类型数求开平方的问题
如果用点来判断,需要计算abc的点范围,只要e.getPoint不再abc的范围内就OK了。
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;public class MyDemo1 extends JFrame implements MouseListener,ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==btn){
Object selectedObject=list.getSelectedValue();
if(selectedObject!=null){
JOptionPane.showMessageDialog(null,"选择项目"+selectedObject );
System.out.println("选择项目"+selectedObject);
}else{
JOptionPane.showMessageDialog(null,"没选择任何项目" );
System.out.println("没选择任何项目");
}
}
} @Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseClicked");
Point p=e.getPoint();
if(list.contains(p)){//判断是否在JList的区域范围内
System.out.println("合法范围");
}else{
System.out.println("无效范围");
list.clearSelection();//不在区域范围内取消选择
}
} @Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mousePressed");
} @Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
} @Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
} @Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
} private String[] names={"A","B","C"};
private JList list=null;
private JButton btn=null;
private Container container=null;
public MyDemo1(String title){
super(title);
btn=new JButton("查看");
list=new JList(names);
container=this.getContentPane();
container.setLayout(new BorderLayout());
container.add(list,BorderLayout.WEST);
container.add(btn,BorderLayout.EAST);
// list.
btn.addActionListener(this);
this.addMouseListener(this);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public static void main(String[] args){
new MyDemo1("demo");
}
}
JList里面有的对象显示很长条,有的短一点,那你点击短一点的某个区域所谓的“空白处”怎么判定呢?
难道你要自己重新底层API,连哪些地方有覆盖文字都能确定?我相信CSDN没有人会做到