问题描述
在对话框中访问不了框架的文本区,所以不能对文本区的内容进行更新。
解决方案
解决方案二:
把你代码贴出来,看看
解决方案三:
思想是:通过对话框输入user类的name和password域,并提取到对话框所属框架中的文本域输出。但是我在编辑对话框类中对话框的按钮响应事件时在ActionListener中的actionPerformed(ActionEvente)不可以访问框架类的文本域。importjava.awt.BorderLayout;importjava.awt.EventQueue;importjava.awt.GridLayout;importjava.awt.Label;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;publicclassdialogdataexchange{publicstaticvoidmain(String[]args){//TODO自动生成方法存根EventQueue.invokeLater(newRunnable(){publicvoidrun(){//TODO自动生成方法存根DialogFramedframe=newDialogFrame();dframe.setSize(200,200);dframe.setVisible(true);}});}}classDialogFrameextendsJFrame{publicDialogFrame(){//TODO自动生成构造函数存根JMenuBarbar=newJMenuBar();setJMenuBar(bar);JMenuhelp=newJMenu("help");JMenuItemabout=newJMenuItem("about");JMenuItemexit=newJMenuItem("exit");;about.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){if(dialog==null)dialog=newDialogclass(DialogFrame.this);dialog.setVisible(true);}});exit.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){//TODO自动生成方法存根System.exit(0);}});help.add(about);help.add(exit);bar.add(help);add(info,BorderLayout.CENTER);}publicJTextAreainfo=newJTextArea("text:n");privateDialogclassdialog;}classDialogclassextendsJDialog{publicDialogclass(JFrameowner){super(owner,"thedialogtest",true);//panelJPanelpanel1=newJPanel();panel1.setLayout(newGridLayout(2,2));panel1.add(newLabel("name:"));finalJTextFieldnametext=newJTextField();panel1.add(nametext);panel1.add(newLabel("password"));finalJTextFieldpasswordtext=newJTextField();panel1.add(passwordtext);add(panel1,BorderLayout.CENTER);//panel2JButtoninsert=newJButton("insert");insert.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringname=newString(nametext.getText());char[]password=passwordtext.getText().toCharArray();useru=newuser(name,password);System.out.println("name:"+name+"password:"+newString(password));nametext.setText("");passwordtext.setText("");}});JButtonclose=newJButton("close");close.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){setVisible(false);}});JPanelp=newJPanel();p.setLayout(newGridLayout(1,2));p.add(close);p.add(insert);add(p,BorderLayout.SOUTH);setSize(200,200);}}classuser{publicuser(Stringname,char[]password){this.name=name;this.password=password;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicchar[]getPassword(){returnpassword;}publicvoidsetPassword(char[]password){this.password=password;}Stringname;char[]password;}