如何在单击b类中的按钮执行代码的过程中,同时让a类中的一个按钮下的代码也执行。 在做项目(学生)。呵呵望会的人指点。。干时间呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【yuyistar】截止到2008-06-29 23:26:20的历史汇总数据(不包括此帖):发帖数:60 发帖分:1350 结贴数:54 结贴分:1180 未结数:6 未结分:170 结贴率:90.00 % 结分率:87.41 % 值得尊敬 首先要得到这个Button的引用,然后调用它的doClick();方法class B {Jbutton h;public JButton getH(){ return h;}}public class A{ public static void main() { JButton h = new B().getH();//得到那个JButton的引用 h.doClick(); }} 我按照做了。。应该是执行了代码。。但是我想被调用的那个按钮里面有一个刷新表格方法。好像没有起做用。表格没有被刷新?可是我加了System.out.println("ss");看代码是否被执行结果成功。这是怎么回事呢? 如果在有表格刷新方法的类里调用那个方法就能刷新表格。。但是换一个类就不行了。是怎么回事。。相当于在另一个Jdiglog里面刷新另一个jdialog里面的表格 可能不是同一个对象吧.你不能new一个新的出来去调用它的方法啊 这是我调用类中的方法 public void jButtonAdd_actionPerformed(ActionEvent e) { String numberOneSql=jTextFieldNumberOne.getText(); String nameOneSql=jTextFieldNameOne.getText(); String numberTwoSql=jTextFieldNumberTwo.getText(); String nameTwoSql=jTextFieldNameTwo.getText(); if(numberOneSql.equals("")){ JOptionPane.showMessageDialog(this,"大类编号不能为空","错误",JOptionPane.ERROR_MESSAGE); return; } if(nameOneSql.equals("")|nameTwoSql.equals("")){ JOptionPane.showMessageDialog(this,"名称不能为空","错误",JOptionPane.ERROR_MESSAGE); }else{ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException ce) { System.out.println(ce); } try { Connection con = DriverManager.getConnection( "jdbc:odbc:assetManage"); Statement s=con.createStatement(); ResultSet rs=s.executeQuery("select numberOne from assetSort"); while(rs.next()){ if(numberOneSql.equals(rs.getString(1))){ JOptionPane.showMessageDialog(this,"不能输入重复的大类名","错误",JOptionPane.ERROR_MESSAGE); rs.close(); s.close(); con.close(); return; } } PreparedStatement pstmt = con.prepareStatement("insert assetSort(numberOne,classOne,numberTwo,classTwo) values(replace(?,' ',''),replace(?,' ',''),replace(?,' ',''),replace(?,' ',''))"); pstmt.setString(1, numberOneSql); pstmt.setString(2, nameOneSql); pstmt.setString(3, numberTwoSql); pstmt.setString(4, nameTwoSql); pstmt.executeUpdate(); pstmt.close(); con.close(); JOptionPane.showMessageDialog(this,"添加成功","成功",JOptionPane.INFORMATION_MESSAGE); jTextFieldNumberOne.setText(String.valueOf((Integer.parseInt(numberOneSql)+1))); jTextFieldNumberTwo.setText(numberTwo); JButton jButtonRefurbish=new SortManagerDialog().clickButton(); jButtonRefurbish.doClick(); } catch (SQLException se) { System.out.println(se); } } } 这个是被调用按钮的方法 JButton jButtonRefurbish=new JButton (); ... ... public JButton clickButton(){ return jButtonRefurbish; } JButton jButtonRefurbish=new SortManagerDialog().clickButton(); 这里是不行的.我就猜你是new出来的.你要把那个SortManagerDialog的引用也得到的了.不能new一个新的出来 SortManagerDialog obj=new SortManagerDialog(); JButton jButtonRefurbish=obj.clickButton(); jButtonRefurbish.doClick();是这个意思吗。。我这样还是不行 这样还是不行的啊.你肯定是在其它的某个地方new SortManagerDialog()了吧.你要得到那个引用. 我认为用线程会好点,按下按钮b类的按钮的时候,调用线程的run()方法,用run()方法去执行a类中的按下按钮的代码。 可以用观察者模式,A观察B。相关的类有java.util.Observable和java.util.Observer 你想让a按钮执行什么,在单击b按钮是执行的代码中调用a要执行的内容。 得到彼此位数上的数字不相同的三位数的所有组合 ArrayList问题 如何把把30~240 之间的数,转化为ascii码 怎么在java应用程序中加入声音 如何連接打印機,打印 java 中 pack() 这个方法是什么意思的问题 将一个整形变量转换成字符串形变量有几种方法 紧急求救!!vrml与java连接问题 如何在一个按钮里加上同时加上图标和文字? 关于Local接口和Remote接口!(请看过SUN的PetStore例子的朋友进来看看)!!! 如何得到 windows 共享资源 如何将jar包手工制成exe可执行文件呢?
楼主【yuyistar】截止到2008-06-29 23:26:20的历史汇总数据(不包括此帖):
发帖数:60 发帖分:1350
结贴数:54 结贴分:1180
未结数:6 未结分:170
结贴率:90.00 % 结分率:87.41 %
值得尊敬
class B
{
Jbutton h;
public JButton getH()
{
return h;
}
}
public class A
{
public static void main()
{
JButton h = new B().getH();//得到那个JButton的引用
h.doClick();
}
}
你不能new一个新的出来去调用它的方法啊
String numberOneSql=jTextFieldNumberOne.getText();
String nameOneSql=jTextFieldNameOne.getText();
String numberTwoSql=jTextFieldNumberTwo.getText();
String nameTwoSql=jTextFieldNameTwo.getText();
if(numberOneSql.equals("")){
JOptionPane.showMessageDialog(this,"大类编号不能为空","错误",JOptionPane.ERROR_MESSAGE);
return;
}
if(nameOneSql.equals("")|nameTwoSql.equals("")){
JOptionPane.showMessageDialog(this,"名称不能为空","错误",JOptionPane.ERROR_MESSAGE);
}else{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
try {
Connection con = DriverManager.getConnection(
"jdbc:odbc:assetManage");
Statement s=con.createStatement();
ResultSet rs=s.executeQuery("select numberOne from assetSort");
while(rs.next()){
if(numberOneSql.equals(rs.getString(1))){
JOptionPane.showMessageDialog(this,"不能输入重复的大类名","错误",JOptionPane.ERROR_MESSAGE);
rs.close();
s.close();
con.close();
return;
}
}
PreparedStatement pstmt = con.prepareStatement("insert assetSort(numberOne,classOne,numberTwo,classTwo) values(replace(?,' ',''),replace(?,' ',''),replace(?,' ',''),replace(?,' ',''))");
pstmt.setString(1, numberOneSql);
pstmt.setString(2, nameOneSql);
pstmt.setString(3, numberTwoSql);
pstmt.setString(4, nameTwoSql);
pstmt.executeUpdate();
pstmt.close();
con.close();
JOptionPane.showMessageDialog(this,"添加成功","成功",JOptionPane.INFORMATION_MESSAGE);
jTextFieldNumberOne.setText(String.valueOf((Integer.parseInt(numberOneSql)+1)));
jTextFieldNumberTwo.setText(numberTwo);
JButton jButtonRefurbish=new SortManagerDialog().clickButton();
jButtonRefurbish.doClick();
} catch (SQLException se) {
System.out.println(se);
}
}
}
JButton jButtonRefurbish=new JButton ();
...
...
public JButton clickButton(){
return jButtonRefurbish;
}
这里是不行的.我就猜你是new出来的.你要把那个SortManagerDialog的引用也得到的了.不能new一个新的出来
JButton jButtonRefurbish=obj.clickButton();
jButtonRefurbish.doClick();
是这个意思吗。。我这样还是不行
相关的类有java.util.Observable和java.util.Observer