Swing怎样获取另一个类中定义的按钮事件和文本框的值?
源代码大致如下:
谢谢import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;public class TestGetBtn extends JFrame {

public TestGetBtn() {
window();
}

public void window() {
this.setLayout(null);

MyPanel p = new MyPanel(20,20,this); this.setSize(300,240);
this.setVisible(true);
this.setResizable(false);
this.setTitle("123456789");
this.setDefaultCloseOperation(3);
}

class MyPanel{
JButton btn = new JButton("OK");
JTextField txt = new JTextField();
public MyPanel(int x,int y,JFrame jf) {
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBounds(x, y, 300, 240);

btn.setBounds(150, 70, 100, 100);
txt.setBounds(30, 30, 100, 30);

panel.add(btn);
panel.add(txt);

jf.add(panel); }
} public static void main(String[] args) {
new TestGetBtn();
}
}

解决方案 »

  1.   

    不知道你到底在问什么?
    给你例子参考一下吧
    public class TestGetBtn {
    public static void main(String[] args) {
    MainFrame f=new MainFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }class MainFrame extends JFrame{
    public MainFrame(){
    setSize(500,300);
    setLocation(150,200);
    setTitle("主界面");
    setResizable(false);

    MainPanel p=new MainPanel();
    this.add(p);
    }
    }class MainPanel extends JPanel{
    private JLabel label1=new JLabel("测试");
    private JTextField text1=new JTextField(30);
    private JButton b1=new JButton("确定");
    public MainPanel(){
    setLayout(null);
    label1.setBounds(60, 50, 100, 30);
    text1.setBounds(190, 50, 200, 30);
    b1.setBounds(150,100,100,40);
    add(label1);
    add(text1);
    add(b1);
    b1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
    JOptionPane.showMessageDialog(null, text1.getText());
    }
    });
    }
    }
      

  2.   

    谢谢楼上的大哥提醒,但是像您这样写的话,如果我需要把MainPanel这个类中定义的多个(是多个)文本框的值,在点击按钮事件之后拿给主窗体中另外一个panel中来显示的话,我又该怎么做呢?我刚学Java不久,希望赐教。拜谢...
      

  3.   

    你可以为多个文本框增加监听阿,都由另一个panel来响应,刚学Java不久还是应该多自己做一些例子尽量自己先解决这样才能进步的更快
      

  4.   

    楼上的朋友,请问VE是什么啊?
    其实我最主要的问题还是两个Jpanel之间传值的问题。
    就比如我有两个Panel,我在PanelA输入,点击PanelA的按钮,PanelB显示PanelA输入的内容。你知道可以如何解决吗?
      

  5.   

    主要还是解决让PanelB能认识PanelA的问题,VE里把组件定义成成员,通过get获取,你要在B里用A的组件值,把A的对象带给B,在B中去通过GET获得相应的组件,再去取它文本