java 两个窗体间的传值
我在做类似浏览的图形界面程序,点击A窗体“浏览”按钮,打开B窗体,显示硬盘目录树,这些功能都完成了,现在问题是,在目录树中选择文件夹,点击确定要把文件夹名返回给A窗体的T...
我在做类似浏览的图形界面程序,点击A窗体“浏览”按钮,打开B窗体,显示硬盘目录树,这些功能都完成了,现在问题是,在目录树中选择文件夹,点击确定要把文件夹名返回给A窗体的TextField,请教各位怎么做?(我有试过在B中new一个A,但是这样就会得到两个A窗体...还有全局变量我也试过也不行)
展开
展开全部
在第一个窗体里面写毁掉函数方法。然后在弹出B窗口中加A窗口应用。B窗口中树中子节点加监听方法。
以下为测试样例:
package org.test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Frame1 {
public static void main(String[] args) {
new FirstFrame().setVisible(true);
}
}
class FirstFrame extends JFrame {
JTextField name;
public FirstFrame() {
super("窗体之间数据传递");
this.setSize(330, 200);
this.setLayout(null);
this.setLocation(100, 50);
JLabel a = new JLabel("姓名:");
name = new JTextField("姓 名", 10);
// 按钮
JButton b = new JButton("传递");
// 添加按钮事件
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
new SecondFrame(FirstFrame.this).setVisible(true);
}
});
JPanel pane = new JPanel();
pane.add(a);
pane.add(name);
pane.add(b);
setContentPane(pane);
}
public void setNameValue(String valueString){
name.setText(valueString);
}
}
class SecondFrame extends JFrame {
public SecondFrame(final FirstFrame frm) {
super("显示数据");
this.setSize(330, 200);
this.setLayout(null);
this.setLocation(100, 50);
JLabel a = new JLabel(frm.name.getText(), 10);
JLabel c = new JLabel("姓名2:");
final JTextField name2 = new JTextField("姓 名2", 10);
JButton b = new JButton("回传");
setDefaultCloseOperation(EXIT_ON_CLOSE);
// 添加按钮事件
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
frm.setNameValue(name2.getText());
}
});
JPanel pane = new JPanel();
pane.add(a);
pane.add(c);
pane.add(name2);
pane.add(b);
setContentPane(pane);
}
}
展开全部
把值放在JTextFiled或其他的可以添加监听的控件,点击就把第二个窗体的值改变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以再A中设置一个静态量public sattic 文件夹名;
当你在B中点确定时肯定要new一个A的对象
在这时,可以这样: A.文件夹名=文件夹名
当你在B中点确定时肯定要new一个A的对象
在这时,可以这样: A.文件夹名=文件夹名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询