swing问题,我是想在tabbedPane中放两个jpanel,这两个Jpanel上有一些文本框,两个jpanel公用确定按钮……

tabbedPane.addChangeListener(newChangeListener(){publicvoidstateChanged(ChangeEvente)... tabbedPane.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e) {
//System.out.println("df");
jbconfirm.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (panel2.requestFocus(true)) {
String gsname = fname.getText();// 公司名称
System.out.println(gsname);
}
if(panel1.requestFocus(true)){
String dfString=field.getText();
System.out.println(dfString);
}
}
});
}
});
公用按钮倒是可以了,但是每次选择一个jpanel然后再选回来的时候再点击确定输入的内容就增多了,也就是你刚才选择了多少次jpanel就输出几次你填进去的内容,感觉是监听里面写错了求高人回答
展开
 我来答
skyyks0001
2011-02-19 · TA获得超过430个赞
知道小有建树答主
回答量:228
采纳率:100%
帮助的人:397万
展开全部
你的需求我没太看明白
按你的代码来看 你是每次点击这个按钮的时候就输出一个文本框中的内容 但是你来回切换tab的时候 你每次输出的内容就会增加

这个原因是的changeListener中每次都给jbconfirm创建新的鼠标监听器,导致你每次切换,就会增加一个监听器。这样会导致最后有许多个监听器在监听这一事件,所以会多次输出。

另外,对于JButton,应添加ActionListener而不是MouseListener。

附(我猜是这个意思的代码):

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MainFrame extends JFrame {

public MainFrame() {
JPanel panel1 = new JPanel();
fname = new JTextField(20);
panel1.add(fname);

JPanel panel2 = new JPanel();
field = new JTextField(20);
panel2.add(field);

JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.add("Panel 1", panel1);
tabbedPane.add("Panel 2", panel2);

JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
jbconfirm = new JButton("confirm");
jbconfirm.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
if (fname.requestFocusInWindow()) {
System.out.println(fname.getText());
}
if (field.requestFocusInWindow()) {
System.out.println(field.getText());
}
}
});
buttonPanel.add(jbconfirm);

this.add(tabbedPane);
this.add(buttonPanel, BorderLayout.SOUTH);
this.setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
new MainFrame().setVisible(true);
}
private JTextField fname;
private JTextField field;
private JButton jbconfirm;
}
影孓丶小白
2011-02-19 · TA获得超过624个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:432万
展开全部
要通过构造函数来创建Jpanel
自己研究下 对你来说 是一个提升
我以前做swing的时候 也遇到了这个问题
遇到问题要学会自己慢慢摸索, 我提供给你一个解决思路,比给你一段代码有帮组 希望对你有帮助
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式