| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:我有个问题找了好久都找不到答案请帮帮忙拉
只看楼主 加入收藏
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
 问题点数:0 回复次数:6 
我有个问题找了好久都找不到答案请帮帮忙拉

小弟是一初学者,现在还在琢磨GUI ,我想请问一个神vLinux飘飘斑竹很久以前问过的问题,有什么方法可以用panel1来监听panel2上的组件的事件作出反应? 是不是用Action接口??还有其他的办法吗?给我个例子好吗?
例如,在帧上加panel1 ,panel2两个容器,panel1上加label1标签,panel2上加button1一个按钮,通过按下这个按钮在label1上显示一行字(内容就随便拉)。

[此贴子已经被作者于2005-12-6 16:41:19编辑过]

搜索更多相关主题的帖子: 标签 接口 
2005-12-06 10:02
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
解决方法1: 用八个字来解释,你中有我,我中有你。
解决方法2: 还是八个字, 两两相识,媒婆相助。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-12-06 19:38
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

我不是很明白您的意思,我最近都在看JSP/SERVLET,太久没看SWING了
如果仅仅是实现你的例子,我会这样做

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

public class Test implements ActionListener{

private JFrame frame = null;
private JButton button = null;
private JLabel label = null;

/** Creates a new instance of Test */
public Test() {
frame = new JFrame("一个测试");
button = new JButton("点我看看?");
label = new JLabel("我是小猫");

JPanel panelA = new JPanel();
JPanel panelB = new JPanel();
JPanel panel = new JPanel();

button.addActionListener(this);

panelA.add(label);
panelB.add(button);
panel.add(panelA);
panel.add(panelB);
frame.setContentPane(panel);

frame.setVisible(true);
frame.pack();
}

public void actionPerformed(ActionEvent e){
label.setText("我是小狗");
}

public static void main(String args[]){
new Test();
}
}

如果遇到大的工程,也就是说actionPerformed()方法非常庞大,我将会用一个类去继承这个Test类,然后再在那个类中是完成actionPerformed()方法的实现


淘宝杜琨
2005-12-06 20:27
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 
谢谢拉  看看先~

懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2005-12-07 09:10
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 

自己做了一个试了一下,可以运行,但是总觉得哪里不太对??哪位老大有Action接口的的例题吗?可以发上来看看不??
/** 这个程序是用来计算球员满时间48分钟绩效的*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.DecimalFormat;

public class NBATest
{ public static void main(String[] args)
{ JFrame f = new NTFrame();
f.show();
}
}

class NTFrame extends JFrame
implements ActionListener
{ public NTFrame()
{ setTitle("NBATest");
setSize(500, 350);
showPanel = new JPanel();
buttonPanel = new JPanel();
Container contentPane = getContentPane();
contentPane.add(showPanel, "Center");
contentPane.add(buttonPanel, "South");
button = new JButton("sums");
buttonPanel.add(button);
button.addActionListener(this);
ppg = new JTextField(3);
rpg = new JTextField(3);
apg = new JTextField(3);
ppgf = new JTextField(3);
rpgf = new JTextField(3);
apgf = new JTextField(3);
min = new JTextField(3);
showPanel.add(ppg); // ppg 平均每场得分数
showPanel.add(rpg); // rpg 平均每场篮板数
showPanel.add(apg); // apg 平均每场助攻数
showPanel.add(min); // min 平均每场上场时间
showPanel.add(ppgf);
showPanel.add(rpgf);
showPanel.add(apgf);

ppgf.setEditable(false);
rpgf.setEditable(false);
apgf.setEditable(false);
}

public void actionPerformed(ActionEvent evt)
{ double pd = Double.parseDouble(ppg.getText());
double rd = Double.parseDouble(rpg.getText());
double ad = Double.parseDouble(apg.getText());
double md = Double.parseDouble(min.getText());
if (md == 0.0) { System.exit(0); }
DecimalFormat df = new DecimalFormat("0.##");
ppgf.setText("" + df.format(pd * 48 / md));
rpgf.setText("" + df.format(rd * 48 / md));
apgf.setText("" + df.format(ad * 48 / md));
}

private JPanel showPanel;
private JPanel buttonPanel;
private JButton button;
private JTextField ppg;
private JTextField rpg;
private JTextField apg;
private JTextField ppgf;
private JTextField rpgf;
private JTextField apgf;
private JTextField min;
}


懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2005-12-07 10:31
cll19820814
Rank: 2
等 级:新手上路
威 望:3
帖 子:328
专家分:0
注 册:2005-11-30
收藏
得分:0 
完全明白了 谢谢啊~~~~

懵懵懂懂,看千遍而不会;设身处地,试一下就成功!
2005-12-08 11:59
飘飘叶子
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:597
专家分:10
注 册:2005-8-17
收藏
得分:0 
在一个类中进行通信不是最难的……如果是2个类的话,会麻烦很多
比如2个窗口,一个窗口上有一个JButton,一个窗口上有一个JLabel,点JButton的话JLabel就显示出一段文字来……

向着软件工程师的目标前进!
2005-12-08 20:41
快速回复:我有个问题找了好久都找不到答案请帮帮忙拉
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019264 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved