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();
}
}
源代码大致如下:
谢谢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();
}
}
给你例子参考一下吧
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());
}
});
}
}
其实我最主要的问题还是两个Jpanel之间传值的问题。
就比如我有两个Panel,我在PanelA输入,点击PanelA的按钮,PanelB显示PanelA输入的内容。你知道可以如何解决吗?