//看你要做什么。先用MouseEvent获得点的坐标,然后把他放到ActionEvent事件中。或者把ActionEvent中的代码放到MouseEvent事件中,搞定 package com; import javax.swing.*; import java.awt.event.*; public class Test { public static void main(String args[]){ Circle c1=new Circle(); }} class Circle extends JFrame{ static int x,y; public Circle(){ init();
ItemEvent好像也不能getPoint吧?
package com;
import javax.swing.*;
import java.awt.event.*;
public class Test {
public static void main(String args[]){
Circle c1=new Circle();
}}
class Circle extends JFrame{
static int x,y;
public Circle(){
init();
this.setBounds(50,50,700,700);
this.setVisible(true);
}
void init(){
this.addMouseListener(new Mo()); } }
class Mo extends MouseAdapter{
public void mouseClicked(MouseEvent e){
Circle.x=e.getPoint().x;//这里
Circle.y=e.getPoint().y;//这里
}
}
我希望在ComboBox的值(SelectedItem)改变的时候做操作。但是操作中需要用到激活comboBox下拉菜单的那次点击。
像你说的,如果把ActionEvent的代码加入MouseEvent中,点击确实获得了,但是在ComboBox的值改变时就没反应了。
如果一定要,你在项中添加BUTTON试试,但是也是组件的坐标。而且估计要报错,因为添加的选项是obj.不是component.
没有监听器。
有一个办法是,点击两下,点击组件的选项后,再点击一次,可以获得刚刚点击的坐标。但不知你做什么用。
import javax.swing.*;import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.*;
import java.util.Vector;public class Test {
public static void main(String args[]) {
Circle c1 = new Circle();
}}class Circle extends JFrame { static Vector vector = new Vector();
static JComboBox com1 = new JComboBox(vector);
static int x, y; public Circle() {
this.setLayout(new FlowLayout());
this.setBounds(50, 50, 700, 700);
com1.setBorder(BorderFactory.createTitledBorder("the best"));
vector.addElement("dog");
vector.addElement("cat");
vector.addElement("其它");
//vector.addElement(b);
itemListener1 lis = new itemListener1();
com1.addItemListener(lis);
this.addMouseListener(new Mo());
com1.addMouseListener(new Mo());
this.add(com1);
init();
} void init() {
this.setVisible(true); }}class Mo extends MouseAdapter{ public void mouseReleased(MouseEvent e) {
Circle.x=e.getPoint().x;
Circle.y=e.getPoint().y;
System.out.println(Circle.x); }
}class itemListener1 implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
JComboBox jcb = (JComboBox) e.getSource();
System.out.println((String) (jcb.getSelectedItem()));
System.out.println(jcb.getSelectedIndex());
} else { } }
}