在尝试创建一个显示对话框的函数并且单击确定后可以返回值(如JOptionPane.showMessageDialog(xxx,“xxx”))时,需要整整一个周末的压力?有人可以帮我写代码吗?
提前致谢
马卡拉
答案 0 :(得分:4)
使用JOptionPane.showInputDialog()。
其他替代方法是将GUI控件交给JOptionPane.showMessageDialog(),并在控件关闭后查询控件的状态,或者使用JDialog。
如果你花费超过15分钟试图让JoptionPane完全按照要求去做,那么这是一个好的迹象,表明JOptionPane不是这个职位的类。
答案 1 :(得分:2)
这里有一个简单的方法。它是一个类而不是一个函数。如果要仅使用两个参数构造它,请创建一个具有所需两个参数的附加构造函数。
Here你可以看看真正的麦考伊......
public class MyOwnJDialog extends javax.swing.JDialog {
private String theMessage;
public MyOwnJDialog(java.awt.Frame parent, boolean modal, String theMessage) {
super(parent, modal);
initComponents();
this.theMessage = theMessage;
jLabel1.setText(theMessage);
setVisible(true);
}
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);
jButton1.setText("OK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jPanel1.add(jButton1);
getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
pack();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
dispose();
}
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
}
答案 2 :(得分:1)
一些有用的项目: