Tag: joptionpane

当焦点被JOptionPane窃取时,JButton会保持按下状态

我是Swing的新手,我有一个情况。 我正在设计一个应用程序,它根据xml文件输入(元数据)动态呈现GUI组件。 现在,我的大多数JTextField都将InputVerifier设置为它们,以进行validation。 只要输入无效,输入validation程序就会弹出JOptionPane。 现在,如果用户输入无效数据并向前移动并单击面板上的按钮,则会弹出一个对话框,用户必须对其进行响应。 但在此之后,按钮也不会绘制以释放状态。 它仍然看起来像被按下但实际上它不是。 由于整个代码非常混乱,我将问题场景放在下面的代码中: – 我应该怎么做才能让JButton看起来没穿#? 如果逻辑也被解释,我将不胜感激。 提前致谢。 package test; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.InputVerifier; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextField; public class VerifierTest extends JFrame { private static final long serialVersionUID = 1L; public VerifierTest() { JTextField […]

在JOptionPane中断两行或多行中的消息

try { Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); String connectionUrl = “jdbc:sqlserver://”+hostName.getText()+”;” + “databaseName=”+dbName.getText()+”;user=”+userName.getText()+”;password=”+password.getText()+”;”; Connection con = DriverManager.getConnection(connectionUrl); if(con!=null){JOptionPane.showMessageDialog(this, “Connection Established”);} } catch (SQLException e) { JOptionPane.showMessageDialog(this, e); //System.out.println(“SQL Exception: “+ e.toString()); } catch (ClassNotFoundException cE) { //System.out.println(“Class Not Found Exception: “+ cE.toString()); JOptionPane.showMessageDialog(this, cE.toString()); } 当出现错误时,它会显示一个长的JOptionPane消息框,该消息框长于计算机屏幕的宽度。 如何将e.toString()分成两个或多个部分。

JOptionPane输入到int

我试图让一个JOptionPane得到一个输入并将其分配给一个int,但我遇到了一些变量类型的问题。 我正在尝试这样的事情: Int ans = (Integer) JOptionPane.showInputDialog(frame, “Text”, JOptionPane.INFORMATION_MESSAGE, null, null, “[sample text to help input]”); 但我得到: Exception in thread “main” java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 这听起来很合乎逻辑,我想不出另一种方法来实现这一点。 提前致谢

如何更改JOptionPane中的按钮背景

我想知道是否有人知道是否可以更改JOptionPane内按钮的背景颜色。 我知道如何使用UIManager更改整个JOptionPane背景,但知道我想要的是在JOptionPane设置单独的okButton,cancelButton等来分隔各个颜色。 如果我能做到这一点,我该怎么做? 谢谢您的帮助。

如何让JOptionPane对话框显示为任务栏上的任务?

编辑: 问题遵循横向规则; 我自己的答案先于它。 在Oscar Reyes的帮助下,我精心设计了这个解决方案: import javax.swing.JOptionPane; import javax.swing.JFrame; public class MyApp extends JFrame { public static void main(String [] args) { new MyApp(); } public MyApp() { super(“MyApp”); setUndecorated(true); setVisible(true); setLocationRelativeTo(null); String i = JOptionPane.showInputDialog(this, “Enter your name:”, getTitle(), JOptionPane.QUESTION_MESSAGE); if(null != i) { JOptionPane.showInputDialog(this, “Your name is:”, getTitle(), JOptionPane.INFORMATION_MESSAGE, null, null, i.concat(i)); } […]

如何自动关闭JOptionPane?

我有一个Thread正在运行,当thread工作时我想显示一个JOptionPane.showMessageDialog说应用程序正在工作,并且在线程停止后, JOptionPane将自动关闭, OK按钮将一直被停用。 我的主要代码: class Index { public static void main(String args[]) { NewThread ob1 = new NewThread(“One”); NewThread ob2 = new NewThread(“Two”); NewThread ob3 = new NewThread(“Three”); System.out.println(“Thread One is alive: “+ ob1.t.isAlive()); System.out.println(“Thread Two is alive: “+ ob2.t.isAlive()); System.out.println(“Thread Three is alive: “+ ob3.t.isAlive()); while (ob1.t.isAlive()){ JOptionPane.showMessageDialog(null,”Thread One is alive”); } System.out.println(“Thread One […]

java中的GUI“转到上一个/下一个”选项?

有没有办法选择上一个消息对话框或下一个消息对话框? 我有一个程序,在完成所有输入和数学计算后,会出现一个消息对话框,其中包含“人员1”的信息,然后按下确定,出现“人员2”的信息。 如果可以选择能够在不同的对话框之间导航,那将是很好的。 这是打印消息的程序的一部分。 for (i = 0; i < NumEmployees; i++) { JOptionPane.showMessageDialog(null, "Employee: " + names[i] + "\n" + "ID: " + data[i][0] + "\n" + "Hours worked: " + (data[i][1] + data[i][2]) + "\n" + "Overtime: " + data[i][2] + "hours" + "\n" + "Amount earned: " + payment[i]); }

在主窗口中切换JPanel

我有一个应用程序允许用户选择一个选项,并根据用户选择从组件中删除JPanel,添加新的JPanel并重新validation组件 看代码: if (c != null) { contentPane.remove(c); } c = new AddBookInterface(theLibrary); contentPane.add(c); contentPane.revalidate(); break; c是一个组件 我有几个JPanels,用户可以切换,交换机正常工作。 但是,当我在用户选择时添加此JPanel时,之后添加的JPanel无法正确加载。 是什么造成的? public class RemoveBookInterface extends JPanel { private Library theLibrary; public RemoveBookInterface(Library theLibrary) { this.theLibrary = theLibrary; setSize(400, 400); setLayout(new BorderLayout()); setVisible(true); removeBook(theLibrary); } public void removeBook(Library theLibrary) { // prompt user for book id of […]

如何在进入主程序之前提示用户输入密码?

我需要做的是用用户名和密码提示用户(身份validation在本地完成),如果签出,用户就可以访问主程序体。 public static void main(String[] args){ //String input = JOptionPane.showInputDialog(“Enter password to continue: “); //input2 = Integer.parseInt(input); // followed by the creation of the main frame new Cashier3(); Cashier3 frame = new Cashier3(); frame.setTitle(“CASHIER 2”); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); 有什么快速的方法可以做到这一点?

如何设置JOptionPane的位置?

我有一个启动窗口,在程序加载时弹出。 这个启动窗口使用方法setAlwaysOnTop(true) ,这是我希望保留的。 当程序的一个单独部分弹出JOptionPane以通知用户需要更新软件时,会出现问题。 在Linux上,它出现在Splash窗口的前面,但在Windows上它出现在后面,用户几乎看不到,然后可能会坐30分钟 – 小时才能找到它尚未加载的原因。 我想要实现的解决方案是 强制JOptionPane在屏幕上的其他位置弹出 要么 更改JOptionPane出现的位置,使其位于初始屏幕的顶部或底部。 我能看到的唯一一个可以做到这一点的函数是setLocationRelativeTo(Component myComponent)方法。 但这并不好,因为没有什么比这更好了(并没有任何礼物!)。 这种事情有可能吗? 如果是这样我该如何去做呢? 这是我的SSCCE(根据他们的答案中的SeniorJD代码): public class Main { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { final Splash splash =new Splash(); try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } […]