如何改变button上的标签,比如start按钮按下之后变成stop,在按一次又成start.如此循环。

bowlder 2001-07-19 02:27:14
谁能帮我看看应该怎么处理这个事件。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ServerPort
{ public static void main(String[] args)
{ JFrame frame=new ServerFrame();
frame.show();
}
}
class ServerFrame extends JFrame
{ public ServerFrame()
{ setSize(300,200);
setTitle("服务器");

addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
} );
Container contentPane=getContentPane();
JPanel panel=new JPanel();
if (startflag==true)
{ StartPush="Start";
}
else
{ StartPush="Stop";
}
JButton startButton=new JButton(StartPush);
panel.add(startButton);
startButton.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ startflag=!startflag;
ServerSocketPort Ssp = new ServerSocketPort(p);
Ssp.start();
}
});
textArea=new JTextArea(8,40);
scrollPane=new JScrollPane(textArea);
contentPane.add(panel,"South");
contentPane.add(scrollPane,"Center");
}
private JScrollPane scrollPane;
private JTextArea textArea;
private int p=8189;
private boolean startflag=true;
private String StartPush;
}
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bowlder 2001-07-19
  • 打赏
  • 举报
回复
给分!
bowlder 2001-07-19
  • 打赏
  • 举报
回复
你一说到匿名内部内,我就突然想起来了曾经在书上看到过,什么要用了才能记得更牢。
knight_qmh 2001-07-19
  • 打赏
  • 举报
回复
因为你用的匿名内部类,
startButton.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent evt)
{ startflag=!startflag;
ServerSocketPort Ssp = new ServerSocketPort(p);
Ssp.start();
}
});
在内部类里无法取得方法里定义的变量,除非是公有的或static,也就是说,startButton应该定义在public ServerFrame()外,为ServerFrame的一个属性。
bowlder 2001-07-19
  • 打赏
  • 举报
回复
成功,谢谢!顺便再请教一个问题:
为什么一定要我将startButton定义为final 类型,我到现在还不是很明白什么时候必须定一次类型,可否讲解,谢谢!
richard_1 2001-07-19
  • 打赏
  • 举报
回复
楼上老兄记错了,应是:

if (startButton.getLabel()!="Start") startButton.setLabel("Start");
else startButton.setLabel("Stop");

xhair 2001-07-19
  • 打赏
  • 举报
回复
老兄,不好意思!!上面的代码我在vj下测试,好像不行!!!我晕。。。
xhair 2001-07-19
  • 打赏
  • 举报
回复
if (startButton.getText()!="Start") startButton.setText("Start");
else startButton.setText("Stop");

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧