Tag: jdialog

真的不可能在运行时删除任何JDialog或JWindow

正如我所尝试的那样,看起来那是不可能的,没有成功,因为我尝试过,或者存在另一种方式? import java.awt.*; import java.awt.event.WindowEvent; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.*; public class SuperConstructor extends JFrame { private static final long serialVersionUID = 1L; private int i = 1; private boolean runProcess; private int top = 20; private int left = 20; public SuperConstructor() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setPreferredSize(new Dimension(300, 300)); setTitle(“Super constructor”); setLocation(150, 150); pack(); setVisible(true); […]

作为JTable-CellEditor的JTextArea-Dialog错过了第一个输入的字符

我们需要一个用于JTable的CellEditor来编辑大型多行文本。 我们尝试使用一个可视化扩展TableCell的弹出TableCell ,它将细胞重叠到右边和底部。 如果电池位于右下角,屏幕边界附近等,则会导致各种问题。 然后我们决定使用模态JDialog来编辑单元格值。 因此用户可以移动对话框,我们可以坚持其大小和位置。 现在问题开始了;-) 我们无法将第一个键入的字符“转发”到Dialog。 有很多关于堆栈溢出的例子,这个问题是针对自定义CellEditor解决的,它直接显示在Table(Cell)中,例如: 在基于JTable面板的单元格编辑器中丢失第一个字符 以下SSCCE(来自camickrs的回答: https ://stackoverflow.com/a/3591230/361227)显示第二个TableColumn中的第一次击键大部分时间都会丢失。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Frame; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultCellEditor; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; /** * Example taken from this […]

JInternalFrame作为模态

我有以下代码: import java.awt.AWTEvent; import java.awt.ActiveEvent; import java.awt.Component; import java.awt.EventQueue; import java.awt.MenuComponent; import java.awt.event.MouseEvent; import javax.swing.JInternalFrame; import javax.swing.SwingUtilities; public class modalInternalFrame extends JInternalFrame { // indica si aquest es modal o no. boolean modal = false; @Override public void show() { super.show(); if (this.modal) { startModal(); } } @Override public void setVisible(boolean value) { super.setVisible(value); if […]

动态更改JDialog的宽度

我创建了一个包含JLabel的JDialog。 因为基于用户输入而改变的文本长度可以包含大量字符,所以需要根据JDialog的长度大小动态地改变JDialog的长度。 我尝试过pack()方法,但事实并非如此。 谁能给我一些提示? 提前致谢!

Java(仅限Windows的问题):当弹出modal dialog并单击阻止的JFrame时,alwaysOnTop JFrame会落到z-order的底部

我有一个Java应用程序,其基本UI由两个JFrame组成:客户区和工具调色板,它应始终显示在客户区上方。 为了实现这一点,工具调色板设置为alwaysOnTop(true),在所有情况下都可以很好地保存一个独有的Windows:当弹出模态JDialog时,单击客户区和/或调色板(两者都是阻止)导致调色板落在客户区后面。 关闭modal dialog后,调色板会重新出现,但其“始终在顶部”已丢失:单击客户区会遮挡调色板。 这是一个最小的单源文件演示: // FloatingPaletteExample.java // 4/11/2012 sorghumking // // Demo of a Windows-only issue that has me puzzled: When a modal dialog is // opened, and user clicks in blocked JFrames (sequence depends on ownership of // modal dialog: follow the instructions in modal dialog to see the problem // behavior), the […]

如何使用自定义JButton在Java(Swing)中创建JOptionPane.showOptionDialog框?

阅读完所有Dialog教程一段时间后,似乎没有明显的方法来做到这一点。 最接近的似乎是JOptionPane.showOptionDialog ,但我受限于此处的optionType参数。 编辑:我想出了问题,但有一个新问题。 看来showOptionDialog中指定的options参数需要是相当简单的对象(字符串或只是’对象’,而不是JButton等)。 我试图在这里放置一系列自定义工厂创建的JButton,因为它们有一个我想要使用的特殊翻转图标。 但是,发生的情况是,单击这些按钮中的任何一个都不会导致对话框关闭(因此,执行会继续阻止对话框)。 所以我在标题中更新了我的问题。 更简洁地说 – 问题是,如何覆盖JOptionPane.showOptionDialog(args)来获取我正在寻找的按钮定制? 或者我甚至需要这样做? 拜托,谢谢! -B。

JDialog没有显示最小化/关闭按钮

在研究问题时,似乎大多数人都希望做相反的事情(即删除最小化/关闭按钮)。 我没有成功使用reoccurrent setUndecorated和setDefaultCloseOperation 这是我的代码: private class TestDialog extends JDialog { public static final String title_ = “Test Dialog”; public TestDialog(JFrame parent) { super(parent,title_,true); setMinimumSize(new Dimension(500,500)); setLocationRelativeTo(null); setUndecorated(false); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); } } 当我显示对话框时,我得到以下内容: 其他信息: 操作系统:Ubuntu Java版本:1.7.0_55

Java从内部JPanel返回ShowOptionDialog

我用了 JOptionPane.showOptionDialog(NULL, 新的MyPanel(), “import”, JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null,new Object [] {},null); 因为我不想要OptionDialog提供的默认按钮,我在MyPanel中创建了我的按钮MyPanel extends JPanel所以现在我的问题是如何从ActionEvent触发的MyPanel关闭那个OptionDialog? 只要该对话框消失,我不关心返回值。 我意识到这可能不是最好的设计,但我已经做了很多次这样的事情,所以我更喜欢一个修复,尽可能少地改变结构。 谢谢!

如何使模态JDialog在显示后立即执行代码

好的,我有一个对象列表。 我需要显示一个Modal JDialog,然后将它传递给对象列表并让它对它们起作用。 问题是当我调用.show()时它会劫持EDT。 理想情况是能够将列表传递给构造函数,然后在显示对话框时,执行相关函数。 在C#中我会使用Loaded事件,但如何做到这一点JDialog逃脱了我。 思考?

如何为具有圆角的JDialog设置3D边框?

我可以在我的JDialog中添加圆角边框,如在Java Swing中如何创建圆角标题边框 。 但它仍然是一种颜色。 我想让边框看起来像3D。 这是我尝试的方式。 Graphics2D g2d = (Graphics2D) g; Color c1 = getBackground(); Color c2 = color1.darker(); int w = getWidth(); int h = getHeight(); GradientPaint gp = new GradientPaint( 0, 0, c1, 0, h, c2); g2d.setPaint(gp); g2d.fill3DRect(0,0, w, h,true); 然后,没有3D外观,但边框已经扩大了边框颜色。 我怎样才能做到这一点? 任何示例代码或链接将受到高度赞赏。