為什么會報錯啊,是不能訪問到構造函數(shù)里的Name和Pass嗎?為什么兩句代碼報錯的位置還不同呢?public class Test01 extends JFrame implements ActionListener {
public Test01(){
//1.設置標題
this.setTitle("登陸");
//2.設置在屏幕上的位置
GraphicsEnvironment a=GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle rec=a.getDefaultScreenDevice().getDefaultConfiguration().getBounds();
double x=(rec.getWidth()-260)/2;
double y=(rec.getHeight()-220)/2;
this.setLocation((int)x, (int)y);
//3.設置大小
this.setSize(260, 220);
//4.設置logo
Image image=Toolkit.getDefaultToolkit().createImage("D:/圖片/雜/logo.jpg");
this.setIconImage(image);
//5.正常退出
this.setDefaultCloseOperation(Test01.EXIT_ON_CLOSE);
//6.關閉最大化
this.setResizable(false);
//7.布局管理
//框架默認布局 管理器 邊界布局
//添加面板 透明的容器 不能單獨存在 默認布局 流式 FlowLayout
JPanel jplMain=new JPanel(); //主面板
this.getContentPane().add(jplMain); //用自己的面板替換框架的內(nèi)容面板
JPanel jplTop=new JPanel(); //上面版
JPanel jplMid=new JPanel(); //中面板
JPanel jplBot=new JPanel(); //下面版
//將面板添加到容器中
jplMain.add(jplTop);
jplMain.add(jplMid);
jplMain.add(jplBot);
//修改面板的布局管理器為網(wǎng)格且3行1列
jplMain.setLayout(new GridLayout(3,1));
//接下來設置各個面板
//上面版
JLabel lblTop=new JLabel(new ImageIcon("D:/圖片/雜/main.jpg"));
jplTop.add(lblTop);
//中面板
JLabel lblName=new JLabel("用戶名:");
JTextField Name=new JTextField(16);
JLabel lblPass=new JLabel("密 碼:");
JPasswordField Pass=new JPasswordField(16);
Name.setForeground(Color.red);
jplMid.add(lblName);
jplMid.add(Name);
jplMid.add(lblPass);
jplMid.add(Pass);
//下面版
JLabel lblSelect=new JLabel("請選擇服務器: ");
JComboBox Select=new JComboBox(
new String[]{"1","2","3","4"}
);
JButton Login=new JButton("登陸(L)");
JButton Exit=new JButton("退出(X)");
//設置熱鍵
Login.setMnemonic('L');
Exit.setMnemonic('X');
}在這兩個地方報錯錯誤原因:1.The method getText() is undefined for the type Attributes.Name2.Pass cannot be resolved拜托拜托!想了好久!
3 回答

蝴蝶刀刀
TA貢獻1801條經(jīng)驗 獲得超8個贊
把構造函數(shù)中定義的局部變量都變成成員變量,像這樣:
public class Test01 extends JFrame implements ActionListener { JPanel jplMain; //主面板 JPanel jplTop; //上面版 JPanel jplMid; //中面板 JPanel jplBot; //下面版 JLabel lblName; JTextField Name; JLabel lblPass; JPasswordField Pass; public Test01(){ jplMain=new JPanel(); //主面板 jplTop=new JPanel(); //上面版 jplMid=new JPanel(); //中面板 jplBot=new JPanel(); //下面版 this.getContentPane().add(jplMain); //用自己的面板替換框架的內(nèi)容面板 lblName=new JLabel("用戶名:"); Name=new JTextField(16); lblPass=new JLabel("密 碼:"); Pass=new JPasswordField(16); 。。。。。 } }

開滿天機
TA貢獻1786條經(jīng)驗 獲得超13個贊
成員變量定義的地方不正確,你現(xiàn)在都定義在Test01構造函數(shù)中,就是局部變量,其他方法中是無法訪問到的。把里面所有定義的變量都挪到類外面定義,然后在構造函數(shù)中new。
添加回答
舉報
0/150
提交
取消