我都已经弄了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 显示错误,提示我无法
}


}



 }
}

解决方案 »

  1.   

    当然找不到了,你把 Panel1 、Panel2、Action 都做为内部类就好了
      

  2.   

    看了下你的代码,
    总共有4个类分别是
    LX8、Panel1、Panel2(含有一个内部类Action)而你却在Panel2的内部类Action中试图使用LX8的成员变量panel1,
    如果提示能找到才出大问题了呢!!!
      

  3.   

    这样写:
    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 显示错误,提示我无法
    }
    }}
    }
    }