标题:JOptionPane.showMessageDialog的问题
只看楼主
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
这个我知道啊  呵呵   还是谢谢楼上的好心提醒。。
至于你那个问题。。。因为用的那个类是我自已建的啊
下面那个SHOWMESSAGE的错误 是因为你的参数不对。。。我上面已经说过了  THIS表示对当前引用此方法的对像的引用  所以是一个BUTTON而不是一个容器。。。

开开心心的过&玩每一天!!!!
2007-01-12 21:34
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

构造的时候,把窗体的引用做为参数传给它


可惜不是你,陪我到最后
2007-01-12 21:54
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
得分:0 

如果想访问f 就在类里面把f定义成静态的就可以了
static MainClass f; //声明
这样传入f应该可以

main()里面再生成对象......


2007-01-12 21:59
海狂
Rank: 1
等 级:新手上路
威 望:1
帖 子:234
专家分:0
注 册:2006-12-26
得分:0 

传入null不好嘛??


2007-01-12 22:00
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
是啊,传入null也可以啊

可惜不是你,陪我到最后
2007-01-12 22:01
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
呵呵  传入NULL也可以啦   我只想忽然想到这个问题  所以就问下了   多了解点东西不是坏事嘛

开开心心的过&玩每一天!!!!
2007-01-12 22:18
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

你想传入父类的窗体,你可以在构造它的时候,把父类的窗体引用做为构造函数的参数传进来


可惜不是你,陪我到最后
2007-01-12 22:27
しΟν∈→鱈
Rank: 1
等 级:新手上路
威 望:2
帖 子:369
专家分:0
注 册:2006-10-25
得分:0 
不能明白版主的意思  如果版主有空就烦请写个eg  没空就算了  也许以后我再遇到的时候领悟到了

开开心心的过&玩每一天!!!!
2007-01-12 22:42
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
以下是引用しΟν∈→鱈在2007-1-12 17:04:22的发言:

package 学生管理系统;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class MainClass extends JFrame {

public MainClass() {
super("学生管理系统---管理员登陆");
this.init();
}

public void init() {
Container cp = this.getContentPane();
cp.setLayout(null);


JLabel jlabel1 = new JLabel("管理员帐号:");
JLabel jlabel2 = new JLabel("管理员密码:");
JButton jbutton = new JButton("登陆");
final JTextField text = new JTextField(10);
final JPasswordField password = new JPasswordField();
jbutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String[] str =
new DatabaseUtilities().getDataTypes("Admin_info");
if(str[0].equals(text.getText()))
if(str[1].equals(password.getText()))
JOptionPane.showMessageDialog(MainClass.this,"你以管理员"//像你的匿名内部类,可以通过,MainClass.this来获来外部类的引用
+str[0]+"的身份登陆");  //这里有错误,该怎么办。。。意思是不认识F
else
JOptionPane.showMessageDialog(f,"你输入的密码有误");
else
JOptionPane.showMessageDialog(f,"你输入的用户名不存在");
}
});

cp.add(jlabel1);
cp.add(jlabel2);
cp.add(text);
cp.add(password);
cp.add(jbutton);

jlabel1.setBounds(150, 150, 100, 20);
jlabel2.setBounds(150, 200, 100, 20);
text.setBounds(260, 150, 150, 20);
password.setBounds(260, 200, 150, 20);
jbutton.setBounds(220, 270, 90, 40);

this.setSize(new Dimension(600, 400));
this.setLocation(200, 200);
this.show();

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

/*class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
String SQLCommand = "SELECT * FROM Admin_info";
execute(SQLCommand);
}
}*/

public static void main(String[] args) {
final MainClass f = new MainClass();
}

}

如果你想把事件监听器写成一个单独的有名字的类那么可以通过构造函数的参数来传递父窗体的引用
class MyListener implements ActionListener{
private JFrame who;
public MyListener(JFrame who){
this.who=who;
}
public void actionPerformed(ActionEvent ae){

JOptionPane.showMessageDialog(who,"xxx");
}
}

这样你可以在构造监听器的时候,让它里面的JOptionPane就有父类的JFrame的引用 了


可惜不是你,陪我到最后
2007-01-12 23:05
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
还有一个方法,那就是直接在你的 MainCLass中去implements ActionListener,然后在它的actionPerformed里面就可以直接传入this到JOptionPane.showMessageDialog()里面了

可惜不是你,陪我到最后
2007-01-12 23:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115635-1-1.html




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

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