我创建了一个DialogUtil,它显示不同情况下JOptionPan的数量。有时在我的动作类中,使用空参数调用此方法,如下所示。
DialogUtil.showNotExist(null,xml.getName().concat(" is null or"));
在这种情况下,JOptionPane不会出现在窗口顶部。
如何向JOptionPane添加内容以使其始终显示在顶部?
public static void showNotExist(JPanel panel, String action) {
JOptionPane.showMessageDialog(panel, new JLabel(action.concat(" doesn't exist."), 2));
}
有两个可能的问题
在EDT中调用JOptionPane,然后在屏幕上仅显示工具栏(来自本机OS的标题在屏幕上可见,RootPane不可见)
在那里,您可以测试JOptionPanes功能,其中JOptionPane.showInternalMessageDialog()在所有情况下都会麻烦到存在另一个带有setModal(true)的JDialog,我不知道的真正原因,应该与ModalityTypes相同
无法在屏幕上同时显示两个JOptionPanes
码
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JRootPane;
import javax.swing.Timer;
//http://stackoverflow.com/questions/8670297/make-java-swing-modal-dialog-behave-like-mac-osx-dialogs
public class ModalDialogDemoFrame extends JFrame {
private static final long serialVersionUID = 1L;
private ModalDialogDemoFrame modalDialogDemo;
public ModalDialogDemoFrame() {
modalDialogDemo = this;
setBounds(100, 100, 400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton buttonDialog = new JButton("Open Dialog");
buttonDialog.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// Create a Modal Dialog with this Frame as Parent.
ModalDialog modalDialog = new ModalDialog(modalDialogDemo, true);
modalDialog.setVisible(true);
}
});
getContentPane().add(buttonDialog, BorderLayout.CENTER);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ModalDialogDemoFrame window = new ModalDialogDemoFrame();
window.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
//http://stackoverflow.com/questions/4577424/distinguish-between-a-single-click-and-a-double-click-in-java/4577475#4577475
class ClickListener extends MouseAdapter implements ActionListener {
private final static int clickInterval = (Integer) Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
private MouseEvent lastEvent;
private Timer timer;
public ClickListener() {
this(clickInterval);
}
public ClickListener(int delay) {
timer = new Timer(delay, this);
}
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 2) {
return;
}
lastEvent = e;
if (timer.isRunning()) {
timer.stop();
doubleClick(lastEvent);
} else {
timer.restart();
}
}
@Override
public void actionPerformed(ActionEvent e) {
timer.stop();
singleClick(lastEvent);
}
public void singleClick(MouseEvent e) {
}
public void doubleClick(MouseEvent e) {
}
}
class ModalDialog extends JDialog {
private static final long serialVersionUID = 1L;
public ModalDialog(JFrame parent, boolean modal) {
Dimension dimensionParentFrame = parent.getSize();
setSize(new Dimension((parent == null) ? 300 : dimensionParentFrame.width / 2, 75));
Dimension dimensionDialog = getSize();
int x = parent.getX() + ((dimensionParentFrame.width - dimensionDialog.width) / 2);
setLocation(x, parent.getY() + parent.getInsets().top);
//setUndecorated(true);
setModal(modal);
//setUndecorated(true);
//getRootPane().setWindowDecorationStyle(JRootPane.ERROR_DIALOG);
setModalityType(ModalityType.APPLICATION_MODAL);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
final JButton buttonClose = new JButton("Close");
buttonClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//ok
/*JOptionPane.showMessageDialog(buttonClose,
"Eggs are not supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);*/
//uncomment for un_handled GUI, JOptionPane is behing JFrame I think....
/*JOptionPane.showInternalMessageDialog(buttonClose,
"Eggs are not supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);*/
//ok
/*JOptionPane.showConfirmDialog(buttonClose,
"Eggs are not supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);*/
//ok
/*JOptionPane.showMessageDialog(null,
"Eggs are not supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);*/
//uncomment for un_handled GUI
//Exception occurred during event dispatching:
//java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent
/*JOptionPane.showInternalMessageDialog(null,
"Eggs are not supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);*/
//ok
JOptionPane.showConfirmDialog(null,
"Eggs are not supposed to be green.",
"Inane warning",
JOptionPane.WARNING_MESSAGE);
dispose();
}
});
add(buttonClose, BorderLayout.CENTER); // comment for listening
addMouseListener(new ClickListener() {
@Override
public void singleClick(MouseEvent e) {
System.out.println("single");
}
@Override
public void doubleClick(MouseEvent e) {
System.out.println("double");
}
});
}
}
问题内容: 我在AWT中看到了一种方法:。在JavaFx中,是否有任何方法可以获取所有窗口的JavaFx应用程序? 谢谢, 问题答案: AFAIK,仍然没有适当的方法来执行此操作。 尽管有一种 肮脏的短期 方法: 浏览的源代码,有一个静态方法似乎可以满足您的期望:。 但是有很多免责声明:
请参阅此小提琴:https://jsfiddle.net/4mxhogmd/1/ 我正在做图表。js如果您在fiddle中看到,您会注意到,在某些情况下,位于条形图顶部的值没有正确显示(超出画布),而我在研究如何在图表上显示数据值时遇到了这个链接。js 但在这里,他们也在同样的情况下使用工具提示来调整条内的文本。我不要这个。 我想要的是,在所有情况下,只在顶部显示值。
问题内容: 我正在python中运行一个小程序,该程序会启动一个小窗口,该窗口需要保持在所有其他窗口的顶部。我相信这是特定于OS的,如何在带有GNOME的GNU- Linux中完成? [ 更新-Windows解决方案 ] 可爱,我想我可以使用。我在Vista 64位版本的Eclipse中将Python 2.5.4与Pygame 1.9.1结合使用。因此,这适用于Windows系统。该功能在此处记录
本文向大家介绍自定义jquery模态窗口插件无法在顶层窗口显示问题,包括了自定义jquery模态窗口插件无法在顶层窗口显示问题的使用技巧和注意事项,需要的朋友参考一下 自定义一个jquery模态窗口插件,将它集成到现有平台框架中时,它只能在mainFrame窗口中显示,无法在顶层窗口显示. 解决这个问题的办法: 通过以下代码就可能实现在顶层窗口弹窗
我是Python新手。我想在下图中显示每个箱上方的值: 这是我的代码: 这是我想要的图表:
我有一个div类,这个类与一个小的JavaScript函数相关联,它将使div显示为全屏。"也就是说,的宽度和高度将是100%”。 因此,高度和宽度不是固定的,它是根据窗口的缩小动态计算的。 在该div下,还有另一个具有ID标头“导航栏”的标头,标头最初相对定位在div.fullscreen-然而,我试图将其定位为固定,当#标头的顶部到达顶部时浏览器窗口。 所以这里是我正在玩的,它切换固定的风格,