1。父界面DaQiZhiBiao 生成子界面LiShuDu ,在子界面LiShuDu要判断父界面DaQiZhiBiao 中哪个button被按下了,
2。当子界面LiShuDu被关闭后,还要有值返回给父界面DaQiZhiBiao,并在保存在父界面DaQiZhiBiao中,
3。再次 按下父界面DaQiZhiBiao 中button,又生成子界面LiShuDu,重复步骤2,又保存值在父界面DaQiZhiBiao中,但要保持上次步骤2保存的值还在。如何实现啊? 郁闷啊,弄了好久,总是出错啊。高手们帮帮忙吧!public class DaQiZhiBiao implements ActionListener {
JButton b4;
JTextField t7;
LiShuDu liShuDu;
public DaQiZhiBiao()
{
t7 = new JTextField();
liShuDu.daQiZhiBiao=this;//提示这里出现了问题 b4 = new JButton("隶属度");
b4.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
liShuDu=new LiShuDu();
flag=1;//设了一个标志位
}
}
);
}
public class LiShuDu implements ActionListener {
DaQiZhiBiao daQiZhiBiao;
public LiShuDu()
{ JButton b1 = new JButton("确定");
b1.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try{
if(daQiZhiBiao.flag==1)
{
daQiZhiBiao.t7.setText("t7");
daQiZhiBiao.t7.setEditable(false);
f.hide();
}
}
}
2。当子界面LiShuDu被关闭后,还要有值返回给父界面DaQiZhiBiao,并在保存在父界面DaQiZhiBiao中,
3。再次 按下父界面DaQiZhiBiao 中button,又生成子界面LiShuDu,重复步骤2,又保存值在父界面DaQiZhiBiao中,但要保持上次步骤2保存的值还在。如何实现啊? 郁闷啊,弄了好久,总是出错啊。高手们帮帮忙吧!public class DaQiZhiBiao implements ActionListener {
JButton b4;
JTextField t7;
LiShuDu liShuDu;
public DaQiZhiBiao()
{
t7 = new JTextField();
liShuDu.daQiZhiBiao=this;//提示这里出现了问题 b4 = new JButton("隶属度");
b4.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
liShuDu=new LiShuDu();
flag=1;//设了一个标志位
}
}
);
}
public class LiShuDu implements ActionListener {
DaQiZhiBiao daQiZhiBiao;
public LiShuDu()
{ JButton b1 = new JButton("确定");
b1.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try{
if(daQiZhiBiao.flag==1)
{
daQiZhiBiao.t7.setText("t7");
daQiZhiBiao.t7.setEditable(false);
f.hide();
}
}
}
{
t7 = new JTextField(); b4 = new JButton("隶属度");
b4.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
liShuDu=new LiShuDu();
liShuDu.daQiZhiBiao=this;//改到这里,上面的话liShuDu还是null呢,当然不行了
flag=1;//设了一个标志位
}
}
);
}
我没测,不过这么传值可不大好,看着挺乱的,可以用dialog之类的东西,也不用设什么标志为了就
liShuDu=new LiShuDu();
liShuDu.daQiZhiBiao=this;这行提示:type mismatch : cannot convert from <anonymous implementation of ActionListener> to DaQiZhiBiao 怎么办呢?
父界面中有3个button,当它们分别被按下时,调出同一个子界面。要在子界面判断是3个button中哪一个button被按下时,调出的子界面。
还有是上面zdsdiablo(十分钟年华老去) :说的
liShuDu=new LiShuDu();
liShuDu.daQiZhiBiao=this;这行错误提示:type mismatch : cannot convert from <anonymous implementation of ActionListener> to DaQiZhiBiao 是怎么回事啊
public class DaQiZhiBiao implements ActionListener {
JButton b4;
JTextField t7;
LiShuDu liShuDu;//这里都没创建一个对象,应该为LiShuDu liShuDu=new LiShuDu();
public DaQiZhiBiao()
{t7 = new JTextField();
liShuDu.daQiZhiBiao=this;//提示这里出现了问题b4 = new JButton("隶属度");
b4.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
liShuDu=new LiShuDu();
flag=1;//设了一个标志位
}
}
);
}
你没把所有程序给出来,没得帮你调试下,楼主自己试下吧
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.StringTokenizer;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class DaQiZhiBiao implements ActionListener {
JTextField t1;
JTextField t2;
JTextField t3;
JTextField t4;
JTextField t5;
JTextField t6;
JTextField t7;
JTextField t8;
JTextField t9;
JButton b1;
JButton b2;
JButton b3;
JButton b4;
JButton b5;
JButton b6;
JFrame f;
File fFeiQi;
int flag;
LiShuDu liShuDu ;
public DaQiZhiBiao()
{
f = new JFrame("大气污染物指标的相=对重要度");
Container contentpane = f.getContentPane();
contentpane.setLayout(null); JLabel label1 = new JLabel("废气");
JLabel label2 = new JLabel("颗粒物");
JLabel label3 = new JLabel("放射性物质");
JLabel label4 = new JLabel("废气");
JLabel label5 = new JLabel("颗粒物");
JLabel label6 = new JLabel("放射性物质");
JLabel label7 = new JLabel("废气");
JLabel label8 = new JLabel("颗粒物");
JLabel label9 = new JLabel("放射性物质");
label1.setBounds(15,50,100,20);
label2.setBounds(15,80,100,20);
label3.setBounds(15,110,100,20);
label4.setBounds(110,25,100,20);
label5.setBounds(180,25,100,20);
label6.setBounds(250,25,100,20);
label7.setBounds(15,50,100,20);
label8.setBounds(15,80,100,20);
label9.setBounds(15,110,100,20);
label1.setFont(new Font("宋体",Font.PLAIN,13));
label2.setFont(new Font("宋体",Font.PLAIN,13));
label3.setFont(new Font("宋体",Font.PLAIN,13));
label4.setFont(new Font("宋体",Font.PLAIN,13));
label5.setFont(new Font("宋体",Font.PLAIN,13));
label6.setFont(new Font("宋体",Font.PLAIN,13));
label7.setFont(new Font("宋体",Font.PLAIN,13));
label8.setFont(new Font("宋体",Font.PLAIN,13));
label9.setFont(new Font("宋体",Font.PLAIN,13)); t1 = new JTextField();
t2 = new JTextField();
t3 = new JTextField();
t4 = new JTextField();
t5 = new JTextField();
t6 = new JTextField();
t7 = new JTextField();
t8 = new JTextField();
t9 = new JTextField();
t1.setBounds(110,50,50,20);
t2.setBounds(180,50,50,20);
t3.setBounds(250,50,50,20);
t4.setBounds(180,80,50,20);
t5.setBounds(250,80,50,20);
t6.setBounds(250,110,50,20);
t7.setBounds(110,50,50,20);
t8.setBounds(110,80,50,20);
t9.setBounds(110,110,50,20);
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
p1.setBounds(15,15,620,180);
p1.setLayout(null);
p2.setBounds(15,220,400,50);
p3.setBorder(BorderFactory.createTitledBorder("大气污染物指标相对重要度"));
p3.setBounds(15,15,330,150);
p3.setLayout(null);
p3.add(label1);
p3.add(label2);
p3.add(label3);
p3.add(label4);
p3.add(label5);
p3.add(label6);
p3.add(t1);
p3.add(t2);
p3.add(t3);
p3.add(t4);
p3.add(t5);
p3.add(t6);
b4 = new JButton("隶属度");
b4.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
f.hide();
liShuDu=new LiShuDu();
fFeiQi = new File("FeiQi.txt");
// liShuDu.daQiZhiBiao=this;
flag=1;
}
}
);
b4.setFont(new Font("宋体",Font.PLAIN,13));
b4.setBounds(170,50,80,20);
b5 = new JButton("隶属度");
b5.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{f.hide();
liShuDu=new LiShuDu();
flag=2;
}
}
);
b5.setFont(new Font("宋体",Font.PLAIN,13));
b5.setBounds(170,80,80,20);
b6 = new JButton("隶属度");
b6.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{f.hide();
liShuDu=new LiShuDu();
//liShuDu.daQiZhiBiao=this;
}
}
);
b6.setFont(new Font("宋体",Font.PLAIN,13));
b6.setBounds(170,110,80,20);
p4.setBorder(BorderFactory.createTitledBorder("隶属度"));
p4.setBounds(350,15,270,150);
p4.setLayout(null);
p4.add(label7);
p4.add(label8);
p4.add(label9);
p4.add(t7);
p4.add(t8);
p4.add(t9);
p4.add(b4);
p4.add(b5);
p4.add(b6);
p1.add(p3);
p1.add(p4);
b1 = new JButton("确定");
b1.addActionListener(this);
b2 = new JButton("取消");
b3 = new JButton("帮助");
b1.setFont(new Font("宋体",Font.PLAIN,13));
b2.setFont(new Font("宋体",Font.PLAIN,13));
b3.setFont(new Font("宋体",Font.PLAIN,13));
p2.add(b1);
p2.add(b2);
p2.add(b3);
contentpane.add(p1);
contentpane.add(p2);
f.setSize(700,300);
f.show();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{
File f = new File("DaQiZhiBiao.txt");
int b;
byte buffer[]=new byte[2500];
String s[]=new String[70];
try
{
FileOutputStream out = new FileOutputStream(f);
out.write((t1.getText()+" "+t2.getText()+" "+t3.getText()+"\n").getBytes());
out.write((t4.getText()+" "+t5.getText()+"\n").getBytes());
out.write((t6.getText()+"\n").getBytes());
out.close();
int i=0,j,k;
String s1;
double A[][]=new double[20][20];
double M[]=new double[30],W[]=new double[30],WW[]=new double[30];
FileInputStream readfile1 = new FileInputStream(f);
b=readfile1.read(buffer,0,2500);
try{String str=new String(buffer,0,b,"Default");
StringTokenizer tokenizer=new StringTokenizer(str," '\n'");
while(tokenizer.hasMoreTokens())
{s[i]=tokenizer.nextToken();
i++;
}
//把值附给矩阵
i=0;
for( j=0;j<3;j++)
{
for( k=j;k<3;k++)
{A[j][k]=Double.valueOf(s[i].toString()).doubleValue();
i++;
//System.out.println(A[j][k]);
}
}
for(j=0;j<3;j++)
{for( k=j;k<3;k++)
{//System.out.println(A[j][k]);
A[k][j]=1/A[j][k];
//System.out.println(A[k][j]);
}
}
//每行矩阵乘积
for(j=0;j<3;j++)
{
M[j]=1;
for(k=0;k<3;k++)
{
//System.out.println(A[j][k]);
M[j]=M[j]*A[j][k];
}
//System.out.println(M[j]);
}
//每层权重
W[0]=0;
for(j=0;j<3;j++)
{M[j]=Math.pow(M[j],1.0/3);
//System.out.println(M[j]);
W[0]=W[0]+M[j];
}
//System.out.println(W[0]);
for(j=0;j<3;j++)
{WW[j]=M[j]/W[0];
s1=String.valueOf(WW[j]).toString();
//System.out.println(s1);
}
}
catch(UnsupportedEncodingException ee)
{System.out.println("UnsupportedEncodingException");}
//输出权重值形成文本文件
File f1 = new File("DaQiZhiBiaoQuanZhong.txt");
FileOutputStream out1 = new FileOutputStream(f1);
for(j=0;j<3;j++)
{
out1.write((String.valueOf(WW[j]).toString()+"\n").getBytes());
}
out1.close();
//组合权重
int b1,d;
byte buffer1[]=new byte[2500];
FileInputStream readfile2 = new FileInputStream(f1);
b1=readfile2.read(buffer1,0,2500);
d=0;
String t[]=new String[70];
try{String str1=new String(buffer1,0,b1,"Default");
StringTokenizer tokenizer1=new StringTokenizer(str1,"'\n'");
while(tokenizer1.hasMoreTokens())
{
t[d]=tokenizer1.nextToken();
d++;
}
System.out.println(t[0]);
System.out.println(t[1]);
System.out.println(t[2]);
}
catch(UnsupportedEncodingException ee)
{System.out.println("UnsupportedEncodingException");}
}
catch(IOException ex){ System.out.println("youwenti");}
}
}
/**
* @param args
*/
public static void main(String[] args)
{
try{
new DaQiZhiBiao();
}
catch (Exception ee){
System.out.print("errorhere");
}
// TODO 自动生成方法存根
}}
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
public class LiShuDu implements ActionListener {
JTextField t1;
JTextField t2;
JTextField t3;
JTextField t4;
JFrame f;
int ffllag;
DaQiZhiBiao daQiZhiBiao;
String s1,subs1;
public LiShuDu()
{
f = new JFrame("隶属度");
Container parent=f.getParent();
Container contentpane = f.getContentPane();
contentpane.setLayout(null);
JLabel label1 = new JLabel();
JLabel label2 = new JLabel("实测值m");
JLabel label3 = new JLabel("界限值a");
JLabel label4 = new JLabel("界限值b");
label1.setText("选择隶属函数种类,输入界限值a、b及实测值m");
label1.setBounds(15,10,480,20);
label2.setBounds(30,30,100,20);
label3.setBounds(30,50,100,20);
label4.setBounds(30,70,100,20);
label1.setFont(new Font("宋体",Font.PLAIN,13));
label2.setFont(new Font("宋体",Font.PLAIN,13));
label3.setFont(new Font("宋体",Font.PLAIN,13));
label4.setFont(new Font("宋体",Font.PLAIN,13));
t1 = new JTextField();
t2 = new JTextField();
t3 = new JTextField();
t4 = new JTextField();
t1.setBounds(120,30,50,20);
t2.setBounds(120,50,50,20);
t3.setBounds(120,70,50,20);
t4.setBounds(120,90,50,20);
JRadioButton r1=new JRadioButton("降半岭形分布");
JRadioButton r2=new JRadioButton("升半岭形分布");
r1.setBounds(20,30,150,20);
r2.setBounds(220,30,150,20);
JLabel label5 = new JLabel(new ImageIcon(".\\test.jpg"));
label5.setHorizontalAlignment(JLabel.CENTER);
label5.setBounds(20,60,130,100);
JLabel label6 = new JLabel(new ImageIcon(".\\test1.jpg"));
label6.setHorizontalAlignment(JLabel.CENTER);
label6.setBounds(220,60,130,100);
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
p1.setBorder(BorderFactory.createTitledBorder("隶属函数种类"));
p1.setBounds(15,130,400,180);
p1.setLayout(null);
p1.add(r1);
p1.add(r2);
p1.add(label5);
p1.add(label6);
p2.setBounds(15,320,400,100);
p2.setLayout(null);
p3.setBounds(15,430,400,100);
p2.add(label2);
p2.add(t1);
p2.add(label3);
p2.add(t2);
p2.add(label4);
p2.add(t3);
p2.add(t4);
JButton b1 = new JButton("确定");
b1.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try{
double computerLSD=ComputerLSD();
s1=String.valueOf(computerLSD);
subs1=s1.substring(0,6);
t4.setText(subs1);
System.out.println(subs1);
daQiZhiBiao=new DaQiZhiBiao();
// if(daQiZhiBiao.flag==1)
{daQiZhiBiao.t7.setText(subs1);
daQiZhiBiao.t7.setEditable(false);
f.hide();}
// if(daQiZhiBiao.flag==2)
// {daQiZhiBiao.t8.setText(subs1);
// daQiZhiBiao.t8.setEditable(false);
// f.hide();
// }
// else if(daQiZhiBiao.flag==3)
// {daQiZhiBiao.t9.setText(subs1);
// daQiZhiBiao.t9.setEditable(false);
// f.hide();
// }
}
catch(SQLException le)
{System.out.println("SQLException");}
}
}
);
JButton b2 = new JButton("取消");
JButton b3 = new JButton("帮助");
b1.setFont(new Font("宋体",Font.PLAIN,13));
b2.setFont(new Font("宋体",Font.PLAIN,13));
b3.setFont(new Font("宋体",Font.PLAIN,13));
p3.add(b1);
p3.add(b2);
p3.add(b3);
contentpane.add(label1);
contentpane.add(p1);
contentpane.add(p2);
contentpane.add(p3);
f.setSize(440,600);
f.show();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public double ComputerLSD() throws SQLException
{ double m=Double.valueOf(t1.getText()).doubleValue(),
a=Double.valueOf(t2.getText()).doubleValue(),
b=Double.valueOf(t3.getText()).doubleValue(),
zjresult,
lastresult;
zjresult=m-(a+b)/2;
lastresult=0.5+0.5*Math.sin((3.1415926/(b-a))*zjresult);
return lastresult;
}
public void actionPerformed(ActionEvent e)
{
File f = new File("lishudu.txt");
try
{
}
catch(Exception ex){ System.out.println("youwenti");}
}
public static void main(String[] args)
{
try{
LiShuDu liShuDu=new LiShuDu();
}
catch (Exception ee){
}
// TODO 自动生成方法存根
}}