当前位置:  技术问答>java相关

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

    来源: 互联网  发布时间:2015-01-16

    本文导语:  谁能帮我看看应该怎么处理这个事件。 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 JF...

谁能帮我看看应该怎么处理这个事件。

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;
}

|
if (startButton.getText()!="Start") startButton.setText("Start");
else startButton.setText("Stop");


|
楼上老兄记错了,应是:

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


|
因为你用的匿名内部类,
           startButton.addActionListener(new ActionListener()
            {    public void actionPerformed(ActionEvent evt)
                {    startflag=!startflag;
                    ServerSocketPort Ssp = new ServerSocketPort(p);
                    Ssp.start();
                }
            });
在内部类里无法取得方法里定义的变量,除非是公有的或static,也就是说,startButton应该定义在public ServerFrame()外,为ServerFrame的一个属性。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于c的for循环中改变变量值的问题
  • jquery $("#variable") 循环改变variable的值示例
  • C++ Lists(链表) 成员 resize():改变list的大小
  • Jqgrid表格随窗口大小改变而改变的简单实例
  • C++ Vectors 成员 resize():改变Vector元素数量的大小
  • linux 中chgrp是改变文件群组的,那么文件拥有者的群组会不会一起改变
  • C++ Double Ended Queues(双向队列) 成员 resize():改变双向队列的大小
  • 如何用shell改变一个目录下的指定文件后缀名.如:从*.TXT改变成*.txt(包括子目录)
  • 网站改版后导致URL改变如何设置301跳转的几种方法
  • LINUX下如何随系统改变字体
  • 将要改变IT世界的的docker技术是什么?
  • 外设硬件的物理端口地址在连接好后能否再改变
  • 在FreeBSD中如何永久改变网卡的mac地址?
  • 不解决也给分。我的红帽子7.3版的窗口不能改变大小了。
  • 怎么改变用户的主目录
  • awk能改变变量的值么?
  • close 一个文件描述符会不会改变其值?
  • 有没有方法在程序里改变shell的工作目录呢?
  • 如何编写Makefile,使得只编译改变的文件
  • 怎样改变对象Integer的值?
  • 如何控制Frame中的组件大小,当用鼠标拖动改变frame大小时
  • hostname改变主机名
  • 请教高手,JtextPane可不可以按行改变颜色


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3