myLabel定义成final试试!
private final myLabel= new JLabel("Hello World");
private final myLabel= new JLabel("Hello World");
解决方案 »
- 请教一个UDP过滤重复包的问题
- 一个线程的问题
- 在网络编程用Socket的时候TCP端口有时被占用,请问是咋会事!!>>>
- 帮帮我,也许对你来说只是举手之劳...
- 系统环境变量中的path变量有什么用?又有什么意义???
- eclipse 的自动完成功能(code completion)
- 关于class的路径的奇怪问题。
- 望不吝赐教!!!!!!!!!!!!!
- 请问使用java如何虚拟键盘操作,如虚拟按下按钮delete键或print键
- 各位大虾!我在2000里装了个TOMCAT,请问怎么进行dns解析
- 大家看thinking in java,有难度吗?
- jndi问题,程序报Cannot load JDBC driver class 'null'
public class HelloWorldJFC2 extends JPanel
{
private JFrame myFrame;
JPopupMenu popup;
public HelloWorldJFC2()
{
JLabel myLabel = new JLabel("Hello World");
myLabel.setOpaque(true);
add(myLabel);
popup = new JPopupMenu();
JMenuItem menuItem1 = new JMenuItem("Hello World");
menuItem1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("Hello World popup");
myLabel.setText("test set"); //这句报措。
}
});
public class HelloWorldJFC2
{
public static void main(String[] args)
{
new HelloWorldJFC2().open();
}
// private since no one else should have access to it.
private JFrame myFrame;
private HelloWorldJFC2Control control;
public HelloWorldJFC2()
{
control = new HelloWorldJFC2Control(this);
}
public void open()
{
myFrame = new JFrame();
createContents();
myFrame.open();
}
/* GUI Components */
//package level since the control would access them.
JLabel labelMine;
JMenuItem itemHello;
private void createContents()
{
...
itemHello = new JMEnuItem("Hello World");
itemHello.addActionListener(control);
...
}
}//package level class since only UI access it.(A seperate java file)
class HelloWorldJFC2Control implements ActionListener
{
private HelloWorldJFC2Control ui;
HelloWorldJFC2Control(HelloWorldJFC2 ui)
{
this.ui = ui;
}
public void actionPerformed(Event e)
{
if (e == ui.itemHello)
helloClicked();
....
}
private void helloClicked()
{
System.out.println("Hello World Popup.");
ui.labelMine.setText("test set");
}
}
现在的问题是把 JLabel myLabel声明为final 后还是一样的报措,难道详解上这个例子有问题?没听说啊。
static JFrame myFrame;
JLabel myLabel; //在这里添加 final没有用
JPopupMenu popup;
public HelloWorldJFC2() {
JLabel myLabel = new JLabel("Hello World"); //在这里就ok了 why?
myLabel.setOpaque(true);
add(myLabel);
popup = new JPopupMenu();
JMenuItem menuItem1 = new JMenuItem("Hello World");
menuItem1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("Hello World popup");
myLabel.setText("test set"); //这句报措。
}
});