当前位置: 代码迷 >> Java相关 >> 双击后显示内容一闪即过的问题
  详细解决方案

双击后显示内容一闪即过的问题

热度:154   发布时间:2007-05-18 13:22:52.0
双击后显示内容一闪即过的问题
import java.awt.*;
import java.awt.event.*;
class WindowList extends Frame
implements ItemListener,ActionListener
{ List list;
TextArea text;
int index=0;
WindowList()
{ list=new List(3,false);
text=new TextArea(2,20);
list.add("书包");
list.add("铅笔");
list.add("鞋子");
list.add("苹果");
add(list,BorderLayout.NORTH);
add(text,BorderLayout.CENTER);
list.addItemListener(this);
list.addActionListener(this);
setSize(500,200);
setVisible(true);
validate();
}
public void itemStateChanged(ItemEvent e)
{ String name=list.getSelectedItem();
index=list.getSelectedIndex();
switch(index)
{ case 0:
text.setText(name+": 单价:50元/个; 产地:北京;");
break;
case 1:
text.setText(name+": 单价:1元/支; 产地:浙江;");
break;
case 2:
text.setText(name+": 单价:200元/双; 产地:山东;");
break;
case 3:
text.setText(name+": 单价:5元/千克; 产地:山东;");
break;
default : text.setText(""); break;
}
}
public void actionPerformed(ActionEvent e)
{ String name=list.getSelectedItem();
switch(index)
{ case 0:
text.setText("本书包为学生专用书包,精美耐用,购买一周内如有质量问题可免费退货!");
break;
case 1:
text.setText("2B铅笔,考试专用,采用优质木材,高级炭黑所制!");
break;
case 2:
text.setText("与狼共舞真皮皮鞋,采用优质小牛皮,质量三包,如假包换!");
break;
case 3:
text.setText("山东优质红富士,优质无污染,口感美味醇厚!");
break;
default : text.setText(""); break;
}

}
}
public class EXE7_10
{ public static void main(String [] args)
{ new WindowList();
}
}



这个程序中,只有一个文本区,双击后显示内容一闪即过,无法停留在文本区中,而后显示的是单击应显示的内容。如何使双击应显示的内容长久停留在文本区中?嗯,先谢过~~o(∩_∩)o...





搜索更多相关的解决方案: import  false  苹果  鞋子  

----------------解决方案--------------------------------------------------------

这是因为你双击的时候会触发ActionEvent,也会触发ItemEvent ,所以建议,不要添加ItemEvent的监听,自己添加鼠标事件自己来监听是双击还是单击


----------------解决方案--------------------------------------------------------
嗯,用鼠标事件来监听。:-)
双击既会触发ActionEvent,也会触发ItemEvent,所以“内容会一闪即过”,是这样理解的吧。

----------------解决方案--------------------------------------------------------

是的,

你完全可以用另外一种方式来实现嘛

何必用鼠标点击的次数来决定呢,因为即使你点击了两下,但是你点击第一下的时候,鼠标事件还是一样被调用了

你可以用鼠标的左右键来区分


----------------解决方案--------------------------------------------------------
谢谢斑斑o(∩_∩)o...

[此贴子已经被作者于2007-5-18 15:02:22编辑过]


----------------解决方案--------------------------------------------------------
斑斑啊!

添加ItemEvent的监听,自己添加鼠标事件自己来监听是双击还是单击……请问具体这样实现呢?
- -||

[此贴子已经被作者于2007-5-18 16:12:31编辑过]


----------------解决方案--------------------------------------------------------
斑斑快来吧~

[此贴子已经被作者于2007-5-18 16:33:57编辑过]


----------------解决方案--------------------------------------------------------
[CODE]import java.awt.*;
import java.awt.event.*;
class WindowList extends Frame
{
List list;
TextArea text;
int index=0;
private String name;
WindowList() {
list=new List(3,false);
text=new TextArea(2,20);
list.add("书包");
list.add("铅笔");
list.add("鞋子");
list.add("苹果");
add(list,BorderLayout.NORTH);
add(text,BorderLayout.CENTER);
list.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent me){
index=list.getSelectedIndex();
name=list.getSelectedItem();
if(me.getClickCount()>=2){
doClickTwo();
}else{
doClickOne();
}
}
});
setSize(500,200);
setVisible(true);
validate();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
private void doClickOne(){
switch(index) {
case 0:
text.setText(name+": 单价:50元/个; 产地:北京;");
break;
case 1:
text.setText(name+": 单价:1元/支; 产地:浙江;");
break;
case 2:
text.setText(name+": 单价:200元/双; 产地:山东;");
break;
case 3:
text.setText(name+": 单价:5元/千克; 产地:山东;");
break;
default : text.setText(""); break;
}
}
private void doClickTwo(){
switch(index) {
case 0:
text.setText("本书包为学生专用书包,精美耐用,购买一周内如有质量问题可免费退货!");
break;
case 1:
text.setText("2B铅笔,考试专用,采用优质木材,高级炭黑所制!");
break;
case 2:
text.setText("与狼共舞真皮皮鞋,采用优质小牛皮,质量三包,如假包换!");
break;
case 3:
text.setText("山东优质红富士,优质无污染,口感美味醇厚!");
break;
default : text.setText(""); break;
}
}
}
public class EXE7_10 {
public static void main(String [] args) {
new WindowList();
}
}[/CODE]

这是我的实现,但是还是会闪一下,这没办法,因为你双击的时候,击第一下的时候,还是会触发鼠标事件
----------------解决方案--------------------------------------------------------
太高明了!!今天从斑斑这里收获不少,真是太谢谢谢谢谢谢了~以后常来顶斑斑

[此贴子已经被作者于2007-5-18 18:37:03编辑过]



----------------解决方案--------------------------------------------------------
呵,刚学java,看不太懂
----------------解决方案--------------------------------------------------------
  相关解决方案