
正文
java模态的代码 java中的模式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java.swing中的JDialog类的问题
关于模态对话框和非模态对话框java模态的代码的解释:
模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。一般来说,Windows应用程序中,对话框分为模态对话框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其java模态的代码他对象的操作。
参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//窗口类
public class MyFrame extends JFrame implements ActionListener {
JButton jb1, jb2;
public MyFrame() {
jb1 = new JButton("模态对话框");
jb1.addActionListener(this);
jb2 = new JButton("非模态对话框");
jb2.addActionListener(this);
JPanel jp = new JPanel();
jp.add(jb1);
jp.add(jb2);
add(jp, BorderLayout.NORTH);
setTitle("窗口");//窗口标题
setSize(300, 200);//窗口大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当点击窗口右上角的关闭按钮时,退出虚拟机,结束
}
public static void main(String[] args) {
MyFrame mf = new MyFrame();
mf.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
JButton jb = (JButton) e.getSource();
//判断按钮是哪一个被点击了
if (jb1 == jb) {
MyDialog md1 = new MyDialog(this, "模态对话框");
md1.setModal(true);//设置为模态窗口
md1.setVisible(true);//对话框可见
} else if (jb2 == jb) {
MyDialog md2 = new MyDialog(this, "非模态对话框");
md2.setVisible(true);
}
}
}
//对话框类
class MyDialog extends JDialog {
public MyDialog(Frame owner, String title) {
super(owner, title);// 调用JDialog父类的构造方法
//JDialog(Dialog owner, String title)
// 创建一个具有指定标题和指定所有者的对话框。
JLabel jl = new JLabel("弹出的窗口");
add(jl);
setSize(200, 120);//大小
// setModal(true);//设置为模态
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//当点击对话框右上角的关闭按钮时,销毁该对话框
}
}
效果图
相关问答
Q1: 模态代码和非模态代码有什么区别
模态代码是说前一个模态代码在你没有下一句程序没换使用不同组别的代码时继续生效的代码就叫模态代码,简单来说就是你没有换代码就一直用同一个代码。非模态代码就是只是在当前程序语句有效,下一句程序将不会生效,简单说就是一次性代码,用了一次下次就失效!
Q2: java代码的打印信息控件怎么做?或者有现成的代码也行。
一: 首先理清业务逻辑
两个窗口, 第一个主窗口, 是用于填写信息java模态的代码的, 点击按钮后,跳转到第二个窗口,.
第二个对话框窗口 ,用于显示需要打印java模态的代码的信息, 以及打印到文档
二: 确定需要的技术, java图像界面主要使用awt和swing
swing里面的控件比较丰富, 且功能强大 .
三: 效果图片
四: 完整的参考代码
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
//定义一个主窗口类
public class MainFrame extends JFrame {
public static final String FILE_PATH = "c:\\print.txt";//常量,用于指定信息的保存路径
//定义主要的组件
private final JTextField jtf1,jtf2,jtf3;
private final JCheckBox jcb1,jcb2,jcb3;
private final JRadioButton jrb1,jrb2;
public MainFrame() {
setTitle("信息提交窗口");//设置窗口标题
setSize(350, 320);//设置窗口大小
setLocationRelativeTo(null);//让窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//当主窗口关闭的时候退出jvm虚拟机
JPanel jp = new JPanel(new GridLayout(5, 1, 2, 1));//定义主显示面板,布局为表格布局5行1列,水平间距2,垂直间距1
JPanel jp1 = new JPanel();//第一行的组件面板
JLabel jl1 = new JLabel("姓名");
jtf1 = new JTextField(10);
jp1.add(jl1);
jp1.add(jtf1);
JPanel jp2 = new JPanel();//第二行的组件面板
JLabel jl2 = new JLabel("学号");
jtf2 = new JTextField(10);
jp2.add(jl2);
jp2.add(jtf2);
JPanel jp3 = new JPanel();//第三行的组件面板
JLabel jl3 = new JLabel("性别");
jrb1 = new JRadioButton("男");
jrb2 = new JRadioButton("女");
jrb1.setSelected(true);
ButtonGroup bgs = new ButtonGroup();
bgs.add(jrb1);
bgs.add(jrb2);
jp3.add(jl3);
jp3.add(jrb1);
jp3.add(jrb2);
JPanel jp4 = new JPanel();//第四行的组件面板
JLabel jl4 = new JLabel("选择爱好");
jcb1 = new JCheckBox("游泳");
jcb2 = new JCheckBox("篮球");
jcb3 = new JCheckBox("跑步");
jp4.add(jl4);
jp4.add(jcb1);
jp4.add(jcb2);
jp4.add(jcb3);
JPanel jp5 = new JPanel();//第五行的组件面板
JLabel jl5 = new JLabel("自java模态的代码我介绍");
jtf3 = new JTextField(22);
jp5.add(jl5);
jp5.add(jtf3);
//添加到主显示面板
jp.add(jp1);
jp.add(jp2);
jp.add(jp3);
jp.add(jp4);
jp.add(jp5);
jp.setBorder(BorderFactory.createTitledBorder("填写资料"));//设置主显示面板的边框
JButton jb = new JButton("跳转到打印页");
jb.addActionListener(new ActionListener() {//按钮事件
public void actionPerformed(ActionEvent e) {//获取组件的信息
StringBuilder sb = new StringBuilder();//用于连接信息
String name = jtf1.getText();
sb.append("姓名:" + name + "\r\n");
String num = jtf2.getText();
sb.append("学号:" + num + "\r\n");
String sex;
if (jrb1.isSelected()) {
sex = "男";
} else {
sex = "女";
}
sb.append("性别:" + sex + "\r\n");
String aihao = "";
if (jcb1.isSelected()) {
aihao += jcb1.getText();
}
if (jcb2.isSelected()) {
aihao += " " + jcb2.getText();
}
if (jcb3.isSelected()) {
aihao += " " + jcb3.getText();
}
sb.append("爱好:" + aihao + "\r\n");
String jieshao = jtf3.getText();
sb.append("自java模态的代码我介绍:" + jieshao + "\r\n");
new PrintDailog(sb.toString(), FILE_PATH).setVisible(true);//打开打印页面,并设置为可见
}
});
getContentPane().add(new JLabel("信息填写",JLabel.CENTER),BorderLayout.NORTH);
getContentPane().add(jp);
getContentPane().add(jb, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new MainFrame().setVisible(true);
}
}
//定义一个对话框窗口类
class PrintDailog extends JDialog {
String info;//用于接受信息
String filePath;//文档的路径
private final JLabel jl2;
public PrintDailog(String info, final String filePath) {
this.info = info;
this.filePath = filePath;
setModal(true);//模态为真,如果不关闭这个对话框,那么无法点击其他窗口
setTitle("信息打印页");//设置打印窗口的标题
setSize(300, 320);//设置打印窗口的大小
setLocationRelativeTo(null);//设置打印窗口居中
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//当点击关闭按钮时,该窗口销毁
JLabel jl1 = new JLabel("信息打印显示", JLabel.CENTER);
JTextArea jta = new JTextArea(info);
jta.setEditable(false);//不可编辑
jta.setLineWrap(true);//自动换行
JScrollPane jsp = new JScrollPane(jta);
jsp.setBorder(BorderFactory.createTitledBorder("信息"));
JButton jb1 = new JButton("打印");
JPanel jp = new JPanel(new GridLayout(2, 1));
JPanel jp1 = new JPanel();
jp1.add(jb1);
JPanel jp2 = new JPanel();
jl2 = new JLabel();
jp2.add(jl2);
jp.add(jp1);
jp.add(jp2);
add(jl1, BorderLayout.NORTH);
add(jsp);
add(jp, BorderLayout.SOUTH);
jb1.addActionListener(new ActionListener() {//点击打印的按钮的事件
public void actionPerformed(ActionEvent e) {
saveToFile();//信息打印到了文档
jl2.setText("信息已经打印到" + filePath);//显示出来
jl2.setForeground(Color.RED);//为了醒目设置颜色为红色
}
});
}
private void saveToFile() {//该方法用于保存信息到文档
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8"));
bw.write(info);
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
五: 拓展
java 制作图像界面比较简单, 只需要熟练的掌握三大布局(流布局 表格布局 边界布局)和常用组件 , 就能制作出比较复杂的界面 . 所以理清业务逻辑, 才是重点
Q3: 【求助】如何在Java里面关闭模态窗口
模态窗口显示后,必须要在模态窗口里才能关闭,因为它显示后,程序就停止在java模态的代码的那句话上,就是停止在SetVisible
,控制权到java模态的代码了dlg里,必须给dlg编程来关闭
Q4: JAVA中打开新页面代码
/**
* 打开打印窗口
* url:链接页面或action动作
* Banglu
*/
function printWindow(url){
var sURL = url;
var sFeatures = "toolbar=no, menubar=no, scrollbars=no,resizable=yes, "
+ "location=no, status=no, titlebar=no, width=800, height=600, top=100, left=100";
window.open(sURL,'notoolbar',sFeatures);
}function exportWindow(url){
var sURL = url;
var sFeatures = "toolbar=no, menubar=no, scrollbars=no,resizable=yes, "
+ "location=no, status=no, titlebar=no, width=800, height=600, top=50, left=50";
var objwin=window.open(sURL,'export'+randomNum(),sFeatures);
objwin.close();
}
/**
* 打开模态窗口
* url:链接页面或action动作
* width:打开模态窗口java模态的代码的宽度
* height:打开模态窗口的高度
* 注意java模态的代码:打开模态窗口的页面中要在head后面加上
* meta http-equiv="Pragma" content="no-cache"java模态的代码:禁止模态窗口缓存
* base target="_self"/:模态窗口中的表单在本窗口中提交
* a onClick='window.location = "view-source:" + window.location.href'b源文件/b/a 可以查看模态窗口的源文件
* Banglu
*/
function modalWindow(url, width, height){
var sURL = url;
var sFeatures = "dialogWidth:" + width + "px; dialogHeight:" + height + "px; "
+ "help:no; scroll:yes; center:yes; status:no;resizable:yes";
window.showModalDialog(sURL, window, sFeatures);
}/**
* 打开普通窗口
* url:链接页面或action动作
* width:宽度
* height:高度
* Banglu
*/
function openWindow(url, width, height){
var sURL=url;
var sFeatures = "scrollbars=yes, status=yes, resizable=yes,"
+ "toolbar=yes, menubar=yes, location=yes, titlebar=yes"
if(width!=null){
sFeatures+=", width="+width;
}
if(height!=null){
sFeatures+=", height="+height;
}
window.open(sURL, 'open'+randomNum(), sFeatures);
}/**
* 打开窗口
* url:链接页面或action动作
* width:宽度
* height:高度
Banglu
*/
function openNoBarWindow(url, width, height){
var sURL=url;
var sFeatures = "scrollbars=no, status=no, resizable=no,"
+ "toolbar=no, menubar=no, location=no, titlebar=no"
if(width!=null){
sFeatures+=", width="+width;
sFeatures+=", left="+(screen.width-width)/2;
}
if(height!=null){
sFeatures+=", height="+height;
sFeatures+=", top="+(screen.height-height-100)/2;
}
window.open(sURL, 'openNoBar'+randomNum(), sFeatures);
}
/**
* 打开全屏窗口
* url:链接页面或action动作
* Banglu
*/
function openFullWindow(url){
var sURL=url;
var sFeatures = "toolbar=no, menubar=no, scrollbars=no, resizable=yes, "
+ "location=no, status=no, titlebar=no, width="+(screen.width-10)+", "
+ "height="+(screen.height-60)+", top=0, left=0";
window.open(sURL, 'full'+randomNum(), sFeatures);
}/**
* 打开主窗口
* url:链接页面或action动作
* Banglu
*/
function openMainWindow(url){
var sURL=url;
var sFeatures = "toolbar=no, menubar=no, scrollbars=no, resizable=yes, "
+ "location=no, status=no,titlebar=no, width="+(screen.width-10)+", "
+ "height="+(screen.height-60)+", top=0, left=0";
window.open(sURL, 'main', sFeatures);
}
/**
* 设置链接
* url:连接的jsp页面或action动作
* Banglu
*/
function link(url, frameID){
if(frameID==null){
window.location.href = url;
}
else{
window.frames[frameID].location = url
}
}/**
* 回车代替tab
* Banglu
*/
function handleKey(){
var gk = window.event.keyCode;
if (gk==13) {
if(window.event.srcElement.tagName!='TEXTAREA'){
window.event.keyCode=9;
return;
}
}
}/**
* 全屏显示
* Banglu
*/
function fullScreen(){
window.dialogHeight=window.screen.availHeight;
window.dialogWidth=window.screen.availWidth;
}
function Resize_dialog(t,l,w,h) {
window.dialogTop = t+"px";
window.dialogLeft = l+"px";
window.dialogHeight = h+"px";
window.dialogWidth = w+"px";
}
Q5: javascript中有几种模态框
JavaScript中常见的模态框有以下几种:
1. alert:用于弹出一个警示框,只能显示一段文字信息和一个“确定”按钮。
2. confirm:用于弹出带有确认和取消两个选项的对话框,用户点击确认返回true,点击取消返回false。
3. prompt:用于弹出一个输入框,用户可以在其中输入信息,并返回用户输入的内容。
4. showModalDialog:用于显示模态对话框,与window.open()方法相似,但弹出的窗口是模态的,即必须先处理完该窗口的操作才能回到原窗口。
5. Bootstrap Modal:Bootstrap是一种CSS前端框架,其中包含很多可用于网页开发的组件,包括弹出框组件——Modal。Modal可以自定义内容和样式,并支持动画效果,通常用于网站的登录、注册、消息提醒等场景。
需要注意的是,alert、confirm和prompt都是由浏览器提供的默认实现,而showModalDialog和Bootstrap Modal则需要依赖相关的库或组件进行实现。
关于java模态的代码和java中的模式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







