当前位置: 代码迷 >> Java相关 >> 添加两个MyPanel面板出现的问题(谢谢千里斑斑^.^问题已解决)
  详细解决方案

添加两个MyPanel面板出现的问题(谢谢千里斑斑^.^问题已解决)

热度:153   发布时间:2007-05-18 15:56:01.0
添加两个MyPanel面板出现的问题(谢谢千里斑斑^.^问题已解决)

import java.awt.*;
import java.awt.event.*;

public class P211_8{

class MyPanel extends Panel implements ActionListener{
TextField text1,text2;
Button button;
MyPanel()
{
Panel1=new Panel();
text1=new TextField(10);
add(text1);
button1=new Button();
add(button1);
button1.addActionListener(this);

Panel2=new Panel();
text2=new TextField(10);
add(text2);
button2=new Button();
add(button2);
button2.addActionListener(this);

}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button1)
button1.setLabel(getText(text1));
if(e.getSource()==button2)
button2.setLabel(getText(text2));

}
}
}
public static void main(String args[])
{
Frame f=new Frame("123");
new MyPanel();
f.setBounds(100,100,300,300);
f.setVisible(true);

f.add(Panel1,BorderLayout.WEST);
f.add(Panel2,BorderLayout.EAST);
f.validate();

}





其实已经很不好意思再提问了,实在是添麻烦给大家了。- -||||MyPanel为Panel的子类,这个例子中编译后出现:Z:\P211_8.java:37: 'class' or 'interface' expected
public static void main(String args[])
^
1 error

不知道怎么改?


[此贴子已经被作者于2007-5-19 14:58:04编辑过]

搜索更多相关的解决方案: MyPanel  面板  

----------------解决方案--------------------------------------------------------
大扩号没有匹配
----------------解决方案--------------------------------------------------------
哈哈 用Eslipe好点这种情况就很少出现:)

----------------解决方案--------------------------------------------------------
回复:(Sieben7)在布局为BorderLayout中添加两个MyP...
大括号匹配的啊……

搞不定了
:Exception in thread "main" java.lang.NoClassDefFoundError: WindowPanel
at P211_8.main(P211_8.java:7)

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

是啊
怎么大括号不匹配都能出现问题呢


----------------解决方案--------------------------------------------------------
以下是引用Sieben7在2007-5-18 18:45:34的发言:
大括号匹配的啊……

搞不定了
:Exception in thread "main" java.lang.NoClassDefFoundError: WindowPanel
at P211_8.main(P211_8.java:7)

你的类名叫MyPanel,不是WindowPanel


----------------解决方案--------------------------------------------------------
以下是引用千里冰封在2007-5-19 8:59:39的发言:

你的类名叫MyPanel,不是WindowPanel

没有WindowPanel啊- -


import java.awt.*;
import java.awt.event.*;

public class P211_8{

public static void main(String[] args){
new MyFrame();
// new MyPanel();
}


class MyPanel extends Panel{
private TextField text;
private Button button;
MyPanel(){
text=new TextField(10);
add(text);
button=new Button("请输入");
add(button);
button.addActionListener(new ButtonPress());
validate();

class ButtonPress implements ActionListener{
public void actionPerformed(ActionEvent e){
button.setLabel(text.getText());
}
}


}
}

class MyFrame extends Frame{
private MyPanel Panel1;
private MyPanel Panel2;
MyFrame(){
Panel1=new MyPanel();
Panel2=new MyPanel();
setLayout(new BorderLayout());
add(Panel1,BorderLayout.EAST);
add(Panel2,BorderLayout.WEST);
setVisible(true);
setBounds(100,100,100,100);
validate();
}

}

}





我重新修改了代码,结果出现两个错误:
F:\P211_8.java:7: non-static variable this cannot be referenced from a static context
new MyFrame();
^
F:\P211_8.java:20: cannot find symbol
symbol : class ButtonPress
location: class P211_8.MyPanel
button.addActionListener(new ButtonPress());
^
2 errors


这两个错误不太理解,我觉得我已经写的很清除了亚
达人指点指点
----------------解决方案--------------------------------------------------------
1,非静态变晨不能在静态里面被引用
2,找不到类ButtonPress,在你的程序第20行
----------------解决方案--------------------------------------------------------
嗯,有收获!问题解决了。
谢谢千里斑斑!o(∩_∩)o...

[此贴子已经被作者于2007-5-19 14:59:07编辑过]


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

要学会看编译器提示的消息,其实编译器提示的很详细的,它连你哪一行错了,都会指出来


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