JDialog 弹出一个模式JDialog ,弹出的JDialog 有一个按钮,按钮的jbutton事件不响应是怎么回事?如何解决?public class DataFrame extends JFrame { public static void main(String[] args) {
// TODO Auto-generated method stub
DataFrame dataFrame = new DataFrame();
dataFrame.dataSource();
} public void dataSource() {
JDialog datasourceDialog = new JDialog();
datasourceDialog.setSize(500, 400);
datasourceDialog.setLocation(datasourceDialog.getToolkit()
.getScreenSize().width
/ 2 - datasourceDialog.getWidth() / 2, datasourceDialog
.getToolkit().getScreenSize().height
/ 2 - datasourceDialog.getHeight() / 2); JButton addButton = new JButton("添加");
datasourceDialog.add(addButton);
datasourceDialog.setVisible(true);
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ConfigDataSource configDataSource=new ConfigDataSource();
}
});
}
}
public class ConfigDataSource {
private JButton jButton;
public ConfigDataSource() {
DataFrame dataFrame=new DataFrame();
JDialog datasourceDialog = new JDialog(dataFrame,"111",true);
datasourceDialog.setSize(400, 500);
jButton=new JButton("1111");
datasourceDialog.add(jButton);
datasourceDialog.setVisible(true);
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//ConfigDataSource configDataSource=new ConfigDataSource();
JOptionPane.showOptionDialog(null, "作者","关于", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE, null, null, null);
}
});
}
public JButton getJButton() {
return jButton;
}
public void setJButton(JButton button) {
jButton = button;
}
}
// TODO Auto-generated method stub
DataFrame dataFrame = new DataFrame();
dataFrame.dataSource();
} public void dataSource() {
JDialog datasourceDialog = new JDialog();
datasourceDialog.setSize(500, 400);
datasourceDialog.setLocation(datasourceDialog.getToolkit()
.getScreenSize().width
/ 2 - datasourceDialog.getWidth() / 2, datasourceDialog
.getToolkit().getScreenSize().height
/ 2 - datasourceDialog.getHeight() / 2); JButton addButton = new JButton("添加");
datasourceDialog.add(addButton);
datasourceDialog.setVisible(true);
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ConfigDataSource configDataSource=new ConfigDataSource();
}
});
}
}
public class ConfigDataSource {
private JButton jButton;
public ConfigDataSource() {
DataFrame dataFrame=new DataFrame();
JDialog datasourceDialog = new JDialog(dataFrame,"111",true);
datasourceDialog.setSize(400, 500);
jButton=new JButton("1111");
datasourceDialog.add(jButton);
datasourceDialog.setVisible(true);
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//ConfigDataSource configDataSource=new ConfigDataSource();
JOptionPane.showOptionDialog(null, "作者","关于", JOptionPane.DEFAULT_OPTION , JOptionPane.INFORMATION_MESSAGE, null, null, null);
}
});
}
public JButton getJButton() {
return jButton;
}
public void setJButton(JButton button) {
jButton = button;
}
}
楼主【javastudyq】截止到2008-07-30 09:21:38的历史汇总数据(不包括此帖):
发帖的总数量:7 发帖的总分数:470 每贴平均分数:67
回帖的总数量:6 得分贴总数量:1 回帖的得分率:16%
结贴的总数量:6 结贴的总分数:370
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:100
结贴的百分比:85.71 % 结分的百分比:78.72 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主加油
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=javastudyq
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;class DataFrame extends JFrame { public static void main(String[] args) {
// TODO Auto-generated method stub
DataFrame dataFrame = new DataFrame();
dataFrame.dataSource();
} public void dataSource() {
JDialog datasourceDialog = new JDialog();
datasourceDialog.setSize(500, 400);
datasourceDialog.setLocation(datasourceDialog.getToolkit().getScreenSize().width / 2 - datasourceDialog.getWidth() / 2, datasourceDialog.getToolkit().getScreenSize().height / 2 - datasourceDialog.getHeight() / 2); JButton addButton = new JButton("添加"); datasourceDialog.add(addButton);
datasourceDialog.setVisible(true); addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
ConfigDataSource configDataSource = new ConfigDataSource();
}
});
}
}class ConfigDataSource { private JButton jButton; public ConfigDataSource() {
DataFrame dataFrame = new DataFrame();
JDialog datasourceDialog = new JDialog(dataFrame, "111", true);
datasourceDialog.setSize(400, 500);
jButton = new JButton("1111");
jButton.setBounds(100, 100, 300, 300);
jButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
JOptionPane.showOptionDialog(null, "作者", "关于", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null);
}
});
datasourceDialog.add(jButton, BorderLayout.NORTH);
datasourceDialog.setVisible(true);
} public JButton getJButton() {
return jButton;
} public void setJButton(JButton button) {
jButton = button;
}
}很奇怪,我把addActionListener提前了一下就正常,放在后面就无法正常响应事件
放在一起虽然能解决,但是如果弹出的JDialog还要弹出的话
在view里写actionPerformed(ActionEvent e)
因为模态的话会有两个事情做
1.super.dispose();
2.通知所有TreeLock要weak.调用dialog.show()或dialog.setVisible(true)方法,会获取TreeLock,所以如果在此之间加入到dialog,那么它认为是dialog的,不计入TreeLock中。