java jframe 对话框_java-如何将值从JDialog框返回到父JFrame?
java-如何将值从JDialog框返回到父JFrame?
我创建了一个模态对话框,上面带有一个自定义图形和一个JButton。 当我单击JButton时,对话框应该关闭并且应该返回一个值。
我在父JFrame中创建了一个名为setModalPiece的函数,该函数接收一个值并将其设置为本地JFrame变量。
问题是该功能从JDialog框不可见(即使JDialog框具有对父JFrame的引用)。
两个问题:1)是否有更好的方法将值从JDialog框返回到其父JFrame?
2)为什么不能使用对传递给JDialog的JFrame的引用来访问我的JFrame函数setModalPiece?
6个解决方案
108 votes
我通常这样做:
Dialog dlg = new Dialog(this, ...);
Value result = dlg.showDialog();
Dialog.showDialog()函数如下所示:
ReturnValue showDialog() {
setVisible(true);
return result;
}
由于在JDialog上将可见性设置为true是模态操作,因此“确定”按钮可以将实例变量(showDialog())设置为对话框的选定结果(如果取消则为null)。 使用“确定/取消”按钮方法处理后,请执行以下操作:
setVisible(false);
dispose();
将控制权返回给showDialog()函数。
Jonathan answered 2020-08-01T21:00:25Z
23 votes
您应该通过向自定义JFrame添加自定义方法CustomDialog来执行相反的操作。
这样,您可以从2992684038688867367328询问对话框的值,而不是通过在JFrame本身上调用某些内容来设置对话框。
如果您在此处查看有关对话框的Oracle教程,它将指出
如果要设计自定义对话框,则需要设计对话框的API,以便可以向对话框查询用户的选择。 例如,CustomDialog有一个getValidatedText方法,该方法返回用户输入的文本。
(您可以找到CustomDialog的源,以了解他们认为您将如何设计自定义对话框)
Jack answered 2020-08-01T20:59:52Z
4 votes
我不知道我是否可以用一种很酷的方式来解释我的方法...假设我需要一个要从用户那里获取该信息的JDialog的productPrice和amount,我需要从JFrame进行调用。
在JDialog中将产品价格和金额声明为公共的非静态全局变量。
public float productPrice;
public int amount;
*这在对话框的类的全局范围内。
在JDialog构造函数中添加这些行以确保模态
super((java.awt.Frame) null, true);
setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL);
*这属于对话框的类构造函数
假设您调用此类操作时,您的JDialog的类名称为“ MyJDialog”
MyJDialog question = new MyJDialog();
MyJDialog.setVisible(true);
// Application thread will stop here until MyJDialog calls dispose();
// this is an effect of modality
//
// When question calls for dispose(), it will leave the screen,
// but its global values will still be accessible.
float myTotalCostVar = question.productPrice * question.ammount;
// this is acceptable.
// You can also create public getter function inside the JDialog class,
// its safer and its a good practice.
*这可以在JFrame中的任何函数中使用,并将调用JDialog获取信息。
Felype answered 2020-08-01T21:01:12Z
0 votes
当您将任何值传递给JDialog到JDialog时,请在每次调用时在jframe中创建参数化构造函数或jdialog。例如 参数化的构造函数如:
public EditProduct(java.awt.Frame parent, boolean modal, int no) {
//int no is number of product want to edit.
//Now we can use this pid in JDialog and perform whatever you want.
}
当您要将值从JDialog传递到JFrame时,请使用set和get方法创建一个bean类,并使用vector值,并在jframe中获取这些值。更多信息
Rajshri answered 2020-08-01T21:01:36Z
0 votes
这是我通常的做法。 我不确定,这就是我创建该帖子的原因:
从JDialog返回值; dispose(),setVisible(false)-示例
guitar_freak answered 2020-08-01T21:02:00Z
0 votes
向您的构造函数添加接口?
public class UploadConfimation extends JDialog {
private final JPanel contentPanel = new JPanel();
public interface GetDialogResponse{
void GetResponse(boolean response);
}
/**
* Create the dialog.
*/
public UploadConfimation(String title, String message, GetDialogResponse result) {
setBounds(100, 100, 450, 300);
setTitle(title);
getContentPane().setLayout(new BorderLayout());
contentPanel.setLayout(new FlowLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
{
JLabel lblMessage = new JLabel(message);
contentPanel.add(lblMessage);
}
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.CENTER));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("YES");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
result.GetResponse(true);
dispose();
}
});
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("NO");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
result.GetResponse(false);
dispose();
}
});
buttonPane.add(cancelButton);
}
}
}
}
Wil_Ryan answered 2020-08-01T21:02:24Z
java jframe 对话框_java-如何将值从JDialog框返回到父JFrame?相关推荐
- java父子对话框_java – 如何将JFrame设置为JDialog的父级
我无法将框架设置为对话框的所有者.通常当我扩展JDialog类来创建对话框时,我使用超级(框架)来指定对话框的所有者,以便当您按Alt选项卡时,它们都不会脱节.但是当我使用新的JDialog对话框= ...
- java 透明对话框_java实现jframe透明窗体示例
java实现jframe透明窗体示例 复制代码 代码如下: import javax.swing.JFrame; public class TansluFrame extends JFrame { p ...
- java swing对话框_Java开发笔记(一百三十五)Swing的文件对话框
除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...
- java swing对话框_java Swing中弹出对话框的几种方式
通过导入JOptionPane类来实现弹出对话框的功能 import javax.swing.JOptionPane; 大体分为四类:ConfirmDialog //确认对话框,由用户来确认(比如按& ...
- java bigint范围_Java Integer取值范围
package com.test; public class Test { public static void main(String []args) { Integer a = 100;//此处若 ...
- java 自定义对话框_Java经典实例:用户自定义对话框
b**f评论了:感谢大佬,解决了我的... p**a向课程作业中提交了代码 y**4向课程作业中提交了代码 p**a添加了笔记:每一个修改Strin... t**e在课程作业中回复了老师:为什么提交作 ...
- java android对话框_java - 防止Android活动对话框关闭外部触摸
18个解决方案 327 votes 要防止对话框在按下后退键时被解除,请使用此选项 dialog.setCancelable(false); 并且为防止对话框在外部触摸时被解雇,请使用此功能 dial ...
- java jcombobox选择_java – 如何按值设置选定的索引JComboBox
我想在JComboBox中将所选索引设置为不是索引的值.怎么做?例 public class ComboItem { private String value; private String labe ...
- java getparameter赋值_java getparameter获取值的问题
这是Html表单部分RegistrationUsername: 这是Html表单部分 Registration Username: Password: Confirm: Servlet的代码是这样 S ...
最新文章
- usaco Palindromic Squares
- c++入门之运算符重载
- CoreData并发操作模式简介
- react设置static defaultProps报错问题解决
- 疑似锤子新机谍照曝光,后置“拐角”四摄,前CEO犀利点评...
- 对比学习视角:重新审视推荐系统的召回粗排模型
- oracle12c ora01017,ORACLE 12C 之 ORA-01017
- WDS功能及中继与桥接模式的区别.
- 阿里云叔度:一场技术人的自我修行
- Android中跳转到系统设置界面
- mysql怎么打开db文件_DB文件扩展名 - 什么是.db以及如何打开? - ReviverSoft
- 如何优化网站才能让网站打开速度更快
- TS是什么?特性是什么?与JS的区别?使用ts的好处?
- 阅读记录-统计你的每一次读书和笔记
- Comparing the Effects of DNS, DoT, and DoH
- 【C++】智力题总结
- EXCEL之函数调用
- 小白学Java基础案例(一)
- 什么是延时电路?6种延时电路原理讲解
- QT编译liblzma
热门文章
- Web 组件势必取代前端?
- 44 年前的今天,改变世界的 TA 诞生了!
- 阿里布局物联网!开源操作系统 AliOS Things 喜提 1 亿芯片出货量
- 今日头条把微信按在地上摩擦
- 佛系张小龙和他的微信帝国 | 畅言
- 如何在 GitHub 上大显身手?
- 用 Python 爬了 10 万个产品经理的信息:KPI 多高,锅就有多大!
- 四面轻松突围!我是如何斩获高级运维开发一职的?
- 李彦宏:我从未说过百度“All in AI”,这得怪陆奇
- mt6735通用recovery_MTK65XX通用线刷刷机工具驱动-MTK65xx刷机工具驱动及教程下载最新免费版-西西软件下载...