2018年3月计算机二级考试JAVA入门知识点:Java对话框
对话框是为了人机对话过程提供交互模式的工具。应用程序通过对话框,或给用户提供信息,或从用户获得信息。对话框是一个临时窗口,可以在其中放置用于得到用户输入的控件。在Swing中,有两个对话框类,它们是JDialog类和JOptionPane类。JDialog类提供构造并管理通用对话框JOptionPane类给一些常见的对话框提供许多便于使用的选项,例如,简单的“yes-no”对话框等。
JDialog类
JDialog类作作对话框的基类。对话框与一般窗口不同,对话框依赖其他窗口,当它所依赖的窗口消失或最小化时,对话框也将消失窗口还原时,对话框又会自动恢复。
对话框分为强制和非强制两种。强制型对话框不能中断对话过程,直至对话框结束,才让程序响应对话框以外的事件。非强制型对话框可以中断对话过程,去响应对话框以外的事件。强制型也称有模式对话框,非强制对话框也称非模式对话框。
JDialog对象也是一种容器,因此也可以给JDialog对话框指派布局管理器,对话框的默认布局为BoarderLayout布局。但组件不能直接加到对话框中,对话框也包含一个内容面板,应当把组件加到JDialog对象的内容面板中。由于对话框依赖窗口,因此要建立对话框,必须先要创建一个窗口。
JDialog类常用的构造方法有3个:
JDialog(),构造一个初始化不可见的非强制型对话框。
JDialog(JFramef,String s),构造一个初始化不可见的非强制型对话框,参数f设置对话框所依赖的窗口,参数s用于设置标题。通常先声明一个JDialog类的子类,然后创建这个子类的一个对象,就建立了一个对话框。
JDialog(JFrame f,String s,boolean b),构造一个标题为s,初始化不可见的对话框。参数f设置对话框所依赖的窗口,参数b决定对话框是否强制或非强制型。
JDialog类的其他常用方法有以下几个:
getTitle(),获取对话框的标题。
setTitle(String s),设置对话框的标题。
setModal(boolean b),设置对话框的模式。
setSize(),设置框的大小。
setVisible(boolean b),显示或隐藏对话框。
【例 11-16】小应用程序声明一个用户窗口类和对话框类,用户窗口有两个按钮和两个文本框,当点击某个按钮时,对应的对话框被激活。在对话框中输入相应信息,按对话框的确定按钮。确定按钮的监视方法,将对话框中输入的信息传送给用户窗口,并在用户窗口的相应文本框中显示选择信息(查看源文件)。
上述例子创建的是强制型对话框,改为非强制型对话框就允许用户在对话过程中暂停,与程序的其他部分进行交互。这样,在界面中可以看到部分对话的效果。
将上述例子改为非强制型对话框只要作少量的改动即可。首先是将对话框构造方法中的代码“super(F,s,true)”改为 “super(F,s,false)”。
第二个变化:原来是响应确定按钮事件时,才调用方法returnName(),将对话框得到的字符串返回给程序。现在当文本框输入选择字符串结束后,就应该立即调用该方法。为此,需要对文本框的输入事件作监视,为文本注册监视器:
public void actionPerformed(ActionEvent e){
if(e.getSource()==text){
MyWindow.returnName(text.getText())
}
else if(e.getSource()==done){
MyWindow.returnName(text.getText())
setVisible(false)
dispose()//清除资源
}
}
JOptionPane类
经常遇到非常简单的对话情况,为了简化常见对话框的编程,JOptionPane类定义了四个简单对话框类型,参见表11-4。JOptionPane类提供一组静态方法,让用户选用某种类型的对话框。下面的代码是选用确认对话框:
int result = JOptionPane.showConfirmDialog(parent,“确实要退出吗”, “退出确认“,JOptionPane.YES_NO_CANCEL_OPTION)
其中方法名的中间部分文字“Confirm”是创建对话框的类型,文字Confirm指明是选用确认对话框。将文字Confirm改为另外三种类型的某一个,就成为相应类型的对话框。上述代码的四个参数的意义是:第一个参数指定这个对话框的父窗口第二个参数是对话框显示的文字第三个参数是对话框的标题最后一个参数指明对话框有三个按钮,分别为“是(Y)”,“否(N)”,和“撤销”。方法的返回结果是用户响应了这个对话框后的结果,参见表 11-5 给出的可能答案。
输入对话框以列表或文本框形式请求用户输入选择信息,用户可以从列表中选择选项或从文本框中输入信息。以下是一个从列表中选择运行项目的输入对话框的示意代码:
String result = (String)JOptionPane.showInputDialog(parent,
“请选择一项运动项目”, “这是运动项目选择对话框”,
JOptionPane.QUESTION_MESSAGE,null,
new Object[]{“踢足球“,“打篮球”,“跑步”,“跳绳”},“跑步”)
第四个参数是信息类型,参见11-6,第五个参数在这里没有特别的作用,总是用null第六个参数定义了一个供选择的字符串数组,第七个参数是选择的默认值。对话框还包括“确定”和“撤销”按钮。
有时,程序只是简单地输出一些信息,并不要求用户有反馈。这样的对话框可用以下形式的代码创建:
JOptionPane.showMessageDialog(parent, “这是一个Java程序”,
“我是输出信息对话框”,JOptionPane.PLAIN_MESSAGE)
//java
文件对话框实现文件多选主要有三种方式、我在这里举三个例子
//
他们分别对应
java
的三个GUI可视编程框架
这里推荐大家使用
Swing或者SWT的
win7/xp 双击执行jar包出现:could not find the main class今天同学问我双击jar包在有的机子上可以运行,但在有的机子上确没法运行,我就我遇到的问题和解决办法拿出来分享:
1.elipse打jar包一般有两种:一种是普通的jar file,另外一种是Runnable jar file;要想可执行当然选择第二种了
2.确人java -jar xxx.jar 在控制台或制作的bat文件中是否正常运行,如果不能正常运行说明jar包有问题;问题一般是没有
指定main方法入口,具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件,看是否有Main-Class属性,并且对应的类shifoulujing、书写等正确;
3.由于机子上装了压缩软件,jar包被压缩软件所关联,导致双击jar包无法运行,解决办法当然是改变打开方式:
将默认打开方式改为jre/bin目录下的javaw.exe
4.由于文件打开类型配置的问题,导致双击jar包出现找不到main函数,该类问题不管是xp,还是Win7比较统一的解决办法是修改关联程序的注册表,修改方法如下:
注意:"C:\Program Files\Java\jre6\bin\javaw.exe"应为你所装的javaw.exe的实际路径
注册表项的路径为:
\HKEY_CLASSES_ROOT\Aplications\javaw.exe\shell\open\command
在此路径下有一默认键值, 不正常的情况下, 键值是:"C:\Program Files\Java\jre6\bin\javaw.exe" "%1"
将键值改为"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1"
然后依然用上述的javaw.exe关联jar文件, 问题完美解决.