[求助]一个关于JRadioButton的问题,麻烦各位大虾指导指导,在线等(急)

xinyouqianqianjie 2005-03-22 10:01:59
我要在第二个面板的监听器中去调用第一个面板中的JRadioButton的isSelected()方法,请问该如何调用呢?下面是代码:

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

class DrawPanel1 extends JPanel{
public DrawPanel1(){
setLayout(new FlowLayout());
ButtonGroup bg=new ButtonGroup();
JRadioButton rb1=new JRadioButton("面积",true);
JRadioButton rb2=new JRadioButton("周长",false);
bg.add(rb1);
bg.add(rb2);
add(rb1);
add(rb2);
}
}

class DrawPanel2 extends JPanel{
public DrawPanel2(){
setLayout(new GridLayout(2,2));
JLabel lb1=new JLabel("半径");
JLabel lb2=new JLabel("计算结果");
JTextField txtA=new JTextField();
JButton btn=new JButton("计算");
add(lb1);
add(txtA);
add(btn);
add(lb2);

btn.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

double a,area,perimeter;
a=Double.parseDouble(txtA.getText());

if(在此处调用)
area=3.14*a*a;
else
perimeter=3.14*2*a;
}
});

}
}
...全文
93 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gift2u 2005-04-02
  • 打赏
  • 举报
回复
所需要做的只是传递一下你要的参数罢了。
gift2u 2005-04-02
  • 打赏
  • 举报
回复
你为什么一定要用inner class ?
不妨试一下做成一个单独的adapter.
For example:
package org.gift2u.test;

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


public class Testcombobox extends JFrame {
JComboBox jComboBox1 = new JComboBox();
DefaultComboBoxModel model = new DefaultComboBoxModel();
JPanel jPanel1 = new JPanel();
FlowLayout flowLayout1 = new FlowLayout();
JButton jButton1 = new JButton();
public Testcombobox() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
jComboBox1.setModel(model);
model.addElement("gift1");
model.addElement("gift2");
model.addElement("gift3");
jPanel1.setLayout(flowLayout1);
jButton1.setText("jButton1");
jButton1.addActionListener(new Testcombobox_jButton1_actionAdapter(this));
this.getContentPane().add(jComboBox1, BorderLayout.NORTH);
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jButton1, null);
}
public static void main(String[] args) {
new Testcombobox().show();
}

void jButton1_actionPerformed(ActionEvent e) {
jButton1.setText(""+this.jComboBox1.getSelectedIndex()); ;
}
}

class Testcombobox_jButton1_actionAdapter implements java.awt.event.ActionListener {
Testcombobox adaptee;

Testcombobox_jButton1_actionAdapter(Testcombobox adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
xsyl_1982 2005-03-23
  • 打赏
  • 举报
回复
个人以为在第一个类中应该添加一个方法 获取isSelected()的返回值
这样在第二个类中就可以调用了
不知道楼主以为如何
xinyouqianqianjie 2005-03-22
  • 打赏
  • 举报
回复
晕,老兄,把你的方法说说啊
hu1hao2 2005-03-22
  • 打赏
  • 举报
回复
关注,虽然想到办法可以解决,但感觉不是太合理

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧