java JList的更新
————————————-这是查询按钮的————————————btn_xs_cx.addActionListener(newActionListener(){publi...
————————————-这是查询按钮的————————————
btn_xs_cx.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s[]={"以学号为关键字查询某学生基本信息","以学号为关键字查询某学生卫生成绩"};
list.setListData(s);
list.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged( ListSelectionEvent event )
{ if(list.getValueIsAdjusting() )
{stop:
switch(list.getSelectedIndex()){
case 0 : {JDialog xs_cxxsjbxx =new xs_cxxsjbxx();
xs_cxxsjbxx.setVisible(true);
break stop;}
case 1 : {JDialog xs_cxxswscj =new xs_cxxswscj();
xs_cxxswscj.setVisible(true);
break stop;}
————————————这是登记按钮的————————————
btn_xs_dj.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s[]={"对新生进本信息进行登记"};
list.setListData(s);
list.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged( ListSelectionEvent event )
{
if(list.getValueIsAdjusting() )
{ stop1:
switch(list.getSelectedIndex()){
case 0 : {JDialog xs_xsdj =new xs_xsdj();
xs_xsdj.setVisible(true);
break stop1;}
——————————————
问题是,如果我点完查询按钮,然后在JList中选“以学号为关键字查询某学生基本信息”,没问题
然后我再点新生登记按钮,然后在JList中选“对新生进本信息进行登记”,不仅混弹出JDialog xs_xsdj,还会弹出JDialog xs_cxxsjbxx。怎么解决呢?
有没有什么办法能初始化JList的索引的还是有其他的办法?
按照你说的,改的switch
代码在这里。结果还是一样啊- -。。
switch(s[list.getSelectedIndex()]){
case "以学号为关键字查询某学生基本信息":
JDialog xs_cxxsjbxx =new xs_cxxsjbxx();
xs_cxxsjbxx.setVisible(true); 展开
btn_xs_cx.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s[]={"以学号为关键字查询某学生基本信息","以学号为关键字查询某学生卫生成绩"};
list.setListData(s);
list.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged( ListSelectionEvent event )
{ if(list.getValueIsAdjusting() )
{stop:
switch(list.getSelectedIndex()){
case 0 : {JDialog xs_cxxsjbxx =new xs_cxxsjbxx();
xs_cxxsjbxx.setVisible(true);
break stop;}
case 1 : {JDialog xs_cxxswscj =new xs_cxxswscj();
xs_cxxswscj.setVisible(true);
break stop;}
————————————这是登记按钮的————————————
btn_xs_dj.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s[]={"对新生进本信息进行登记"};
list.setListData(s);
list.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged( ListSelectionEvent event )
{
if(list.getValueIsAdjusting() )
{ stop1:
switch(list.getSelectedIndex()){
case 0 : {JDialog xs_xsdj =new xs_xsdj();
xs_xsdj.setVisible(true);
break stop1;}
——————————————
问题是,如果我点完查询按钮,然后在JList中选“以学号为关键字查询某学生基本信息”,没问题
然后我再点新生登记按钮,然后在JList中选“对新生进本信息进行登记”,不仅混弹出JDialog xs_xsdj,还会弹出JDialog xs_cxxsjbxx。怎么解决呢?
有没有什么办法能初始化JList的索引的还是有其他的办法?
按照你说的,改的switch
代码在这里。结果还是一样啊- -。。
switch(s[list.getSelectedIndex()]){
case "以学号为关键字查询某学生基本信息":
JDialog xs_cxxsjbxx =new xs_cxxsjbxx();
xs_cxxsjbxx.setVisible(true); 展开
1个回答
展开全部
在你case的时候,list点击第一个的时候得到的下标肯定是0,这个list针对点击下标为0时,其实你定义了两个点击事件,所以先加载了查询学生基本信息之后,再点击登记会出现两个对话框,,,,解决方法:1.针对每一个不同的页面定义不用的list,比如说查询学生登记信息定义list_cx,登记页面的list定义为list_dj,这样针对不同的变量设置事件,就不会出现这个问题了,,还有一种方法是,不改变当前的方式,较为啰嗦的一种方式是改变switch,,,如下:switch(s[list.getSelectedIndex()]){
case:"以学号为关键字查询某学生基本信息";
break;
case:"以学号为关键字查询某学生卫生成绩";
break;
}另一个实现方法也这样,,但是这样的话,灵活度就差了点,,你自己考虑吧
case:"以学号为关键字查询某学生基本信息";
break;
case:"以学号为关键字查询某学生卫生成绩";
break;
}另一个实现方法也这样,,但是这样的话,灵活度就差了点,,你自己考虑吧
追问
我按照你说的,把几个按钮的listener的switch都改了,但是结果还是一样。。。
另外我也试了一下用不同的Jlist,后面一个会把前面一个覆盖。
我把代码附在问题补充后面了,这里贴不上。
追答
你点击查询和新生登记的时候,JList这个对象更新了两次鼠标单击事件。。。你试一下把给JList增加鼠标单击事件的代码单独写在外边,而不是在某一个按钮单击事件的里边,,,
------这是查询
btn_xs_cx.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s[]={"以学号为关键字查询某学生基本信息","以学号为关键字查询某学生卫生成绩"};
list.setListData(s);
}}
————————————这是登记按钮的————————————
btn_xs_dj.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s[]={"对新生进本信息进行登记"};
list.setListData(s);
}}
-----JList单独的事件代码
list.addListSelectionListener(
new ListSelectionListener() {
switch(s[list.getSelectedIndex()]){
case "以学号为关键字查询某学生基本信息": break;
case:"以学号为关键字查询某学生卫生成绩"break;
case:"对新生进本信息进行登记".break;
---这样的话,JList鼠标事件就只定义一次了,,你再试一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询