Java论坛网»Java技术»JFileChooser的打开文件对话框如何做成模态对话框?

JFileChooser的打开文件对话框如何做成模态对话框?

问?:
请问能不能做成模态对话框,可以的话怎么样实现?
答!: 1:
模。。态。。? 不想顶楼,不过模态是什么意思
答!: 2:
对话框一般分为两种类型:模态类型(modal)与非模态类型(modeless)。所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换。
答!: 3:
int showDialog(Component parent, String approveButtonText)
弹出具有自定义 approve 按钮的自定义文件选择器对话框。
int showOpenDialog(Component parent)
弹出一个 "Open File" 文件选择器对话框。
int showSaveDialog(Component parent)
弹出一个 "Save File" 文件选择器对话框。
把你要实现模态的父组件做为参数传进去就可以了
答!: 4:
楼上的大侠 父组件都有什么呢

我现在做的画面用的控件都是awt重新改写过的

放进去都不匹配
答!: 5:
当然可以匹配,因为传入的参数都是Component对象,所有的组件都是它的子类
比如说你做了一个Frame,它会弹出一个文件选框,那么你就把这个Frame的引用传进去就可以实现
只要文件选择框不消失,你就按不到Frame这个窗体
这就是模态啊
答!: 6:
/*
* TestModel.java
*
* Created on 2006年8月31日, 上午9:22
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

/**
*
* @author 千里冰封
*/
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class TestModel implements ActionListener{
private JButton jb;
private JFrame jf;
/** Creates a new instance of TestModel */
public TestModel() {
initWindow();
}
private void initWindow(){
jf=new JFrame("模态演示");
jb=new JButton("选择文件");
jb.addActionListener(this);
jf.getContentPane().add(jb,BorderLayout.SOUTH);
jf.setSize(300,300);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==jb){
JFileChooser jfc=new JFileChooser();
int i=jfc.showSaveDialog(jf);
if(JFileChooser.APPROVE_OPTION==i){//选中了
JOptionPane.showMessageDialog(jf,"您选择的文件是:\n"+jfc.getSelectedFile());
}else{
JOptionPane.showMessageDialog(jf,"您取消选择!");
}
}
}
public static void main(String args[]){
new TestModel();
}
}
这是个我刚写的例子,你可以看看
答!: 7:
如果是这样的话,那把父窗体的重量级组件穿给dialog就行了.在dialog内部实现了那个模态

相关JAVA教程:
这个版面到底有多少个帖子是真正问“架构、设计”的?忒也奇怪了。
急...我的win2003密码忘了.进不了,是局域网中的一台机子..
一个struts的异常
Hibernate的这个问题在IDE开发工具中该如何去解决!!
一个简单小程序,setSelectionStart
JTABLE选择行的设置问题,急
初学JAVA,一点肤浅的认识,不知对不对?
请教大家一个关于hibernate问题?
为什么我在hibernate中查询不能用别名?
是不是每写一个类最好是都有需要有个pojo啊
appfuse+webwork中不能进行验证
简单的获得session值的问题