我都已经弄了2个多小时了,实在没办法,上来求助
package L8;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;import javax.swing.*;import java.util.Vector;
public class LX8 extends JFrame
{
public static final int WIDTH=400;
public static final int HEIGHT=300;
public Panel1 panel1; //明明已经在此定义了的
public Panel2 Panel2;
public Container cont;
public void init()
{
panel1=new Panel1();
Panel2=new Panel2();
cont=getContentPane();
cont.setLayout(new GridLayout(2,1));
cont.add(panel1);
cont.add(Panel2);
}
public LX8() {
super("小程序");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(WIDTH,HEIGHT);
init();
}
public static void main(String[] args)
{
LX8 a=new LX8();
a.show();
}
}
class Panel1 extends JPanel{
JTextField text=new JTextField(5);
JTextArea bigtext=new JTextArea(10,15);;
Label label1;
public Panel1()
{
setLayout(new FlowLayout());
label1=new Label("输入10进制数");
add(label1);
add(text);
add(new JScrollPane(bigtext));
}}
class Panel2 extends JPanel
{
public JRadioButton b1;
public JRadioButton b2;
public JRadioButton b3;
public JRadioButton b4;
public JCheckBox B1;
public JCheckBox B2;
public JCheckBox B3;
public JCheckBox B4;
Label label2;
Label label3;
Panel2()
{
setLayout(new FlowLayout());
b1=new JRadioButton("2进制");
b2=new JRadioButton("8进制");
b3=new JRadioButton("16进制");
b4=new JRadioButton("10进制");
B1=new JCheckBox("2进制");
B2=new JCheckBox("8进制");
B3=new JCheckBox("16进制");
B4=new JCheckBox("10进制");
label2=new Label("请选择进制");
Label label3=new Label("请选择进制");
ButtonGroup bgroup1=new ButtonGroup();
bgroup1.add(b1);
bgroup1.add(b2);
bgroup1.add(b3);
bgroup1.add(b4);
add(label2);
add(B1);
add(B2);
add(B3);
add(B4);
add(label3);
add(b1);
add(b2);
add(b3);
add(b4);
B1.addItemListener(new Action());
}
class Action implements ItemListener{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
if(e.getSource()== B1)
{
String s1=panel1.text.getText(); //eclipse 显示错误,提示我无法
}
}
}
}
package L8;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;import javax.swing.*;import java.util.Vector;
public class LX8 extends JFrame
{
public static final int WIDTH=400;
public static final int HEIGHT=300;
public Panel1 panel1; //明明已经在此定义了的
public Panel2 Panel2;
public Container cont;
public void init()
{
panel1=new Panel1();
Panel2=new Panel2();
cont=getContentPane();
cont.setLayout(new GridLayout(2,1));
cont.add(panel1);
cont.add(Panel2);
}
public LX8() {
super("小程序");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(WIDTH,HEIGHT);
init();
}
public static void main(String[] args)
{
LX8 a=new LX8();
a.show();
}
}
class Panel1 extends JPanel{
JTextField text=new JTextField(5);
JTextArea bigtext=new JTextArea(10,15);;
Label label1;
public Panel1()
{
setLayout(new FlowLayout());
label1=new Label("输入10进制数");
add(label1);
add(text);
add(new JScrollPane(bigtext));
}}
class Panel2 extends JPanel
{
public JRadioButton b1;
public JRadioButton b2;
public JRadioButton b3;
public JRadioButton b4;
public JCheckBox B1;
public JCheckBox B2;
public JCheckBox B3;
public JCheckBox B4;
Label label2;
Label label3;
Panel2()
{
setLayout(new FlowLayout());
b1=new JRadioButton("2进制");
b2=new JRadioButton("8进制");
b3=new JRadioButton("16进制");
b4=new JRadioButton("10进制");
B1=new JCheckBox("2进制");
B2=new JCheckBox("8进制");
B3=new JCheckBox("16进制");
B4=new JCheckBox("10进制");
label2=new Label("请选择进制");
Label label3=new Label("请选择进制");
ButtonGroup bgroup1=new ButtonGroup();
bgroup1.add(b1);
bgroup1.add(b2);
bgroup1.add(b3);
bgroup1.add(b4);
add(label2);
add(B1);
add(B2);
add(B3);
add(B4);
add(label3);
add(b1);
add(b2);
add(b3);
add(b4);
B1.addItemListener(new Action());
}
class Action implements ItemListener{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
if(e.getSource()== B1)
{
String s1=panel1.text.getText(); //eclipse 显示错误,提示我无法
}
}
}
}
总共有4个类分别是
LX8、Panel1、Panel2(含有一个内部类Action)而你却在Panel2的内部类Action中试图使用LX8的成员变量panel1,
如果提示能找到才出大问题了呢!!!
package L8;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;import javax.swing.*;import java.util.Vector;
public class LX8 extends JFrame
{
public static final int WIDTH=400;
public static final int HEIGHT=300;
public Panel1 panel1; //明明已经在此定义了的
public Panel2 Panel2;
public Container cont;
public void init()
{
panel1=new Panel1();
Panel2=new Panel2();
cont=getContentPane();
cont.setLayout(new GridLayout(2,1));
cont.add(panel1);
cont.add(Panel2);
}
public LX8() {
super("小程序");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(WIDTH,HEIGHT);
init();
}
public static void main(String[] args)
{
LX8 a=new LX8();
a.show();} class Panel1 extends JPanel{
JTextField text=new JTextField(5);
JTextArea bigtext=new JTextArea(10,15);;
Label label1;public Panel1()
{
setLayout(new FlowLayout());
label1=new Label("输入10进制数");
add(label1);
add(text);
add(new JScrollPane(bigtext));
}}
class Panel2 extends JPanel
{ public JRadioButton b1;
public JRadioButton b2;
public JRadioButton b3;
public JRadioButton b4;
public JCheckBox B1;
public JCheckBox B2;
public JCheckBox B3;
public JCheckBox B4;
Label label2;
Label label3;Panel2()
{
setLayout(new FlowLayout());
b1=new JRadioButton("2进制");
b2=new JRadioButton("8进制");
b3=new JRadioButton("16进制");
b4=new JRadioButton("10进制");
B1=new JCheckBox("2进制");
B2=new JCheckBox("8进制");
B3=new JCheckBox("16进制");
B4=new JCheckBox("10进制");
label2=new Label("请选择进制");
Label label3=new Label("请选择进制");
ButtonGroup bgroup1=new ButtonGroup();
bgroup1.add(b1);
bgroup1.add(b2);
bgroup1.add(b3);
bgroup1.add(b4);
add(label2);
add(B1);
add(B2);
add(B3);
add(B4);
add(label3);
add(b1);
add(b2);
add(b3);
add(b4);
B1.addItemListener(new Action());
}
class Action implements ItemListener{
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange()==ItemEvent.SELECTED)
if(e.getSource()== B1)
{
String s1=panel1.text.getText(); //eclipse 显示错误,提示我无法
}
}}
}
}