# 4 Re: Dialogs and Forms
I have 2 dialogs (dlogPassword and dlogMission are the names)
I would like dlogPassword to appear when the program runs and dlogMission to appear when the button cmdMission is pressed.
**** I wish this would work!!!!!!!!
Here is my code;
/*
* assign.java
*
* Created on 17 January 2006, 09:10
*/
package assign;
/**
*
* @author 0402900
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.util.*;
import java.sql.*;
import java.util.StringTokenizer;
public class assign extends javax.swing.JFrame {
boolean confirm = false;
/** Creates new form assign */
public assign() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
dlogMission = new javax.swing.JDialog();
lblTitle = new javax.swing.JLabel();
txtName = new javax.swing.JTextField();
lblName = new javax.swing.JLabel();
lblJob = new javax.swing.JLabel();
txtJob = new javax.swing.JTextField();
txtJob1 = new javax.swing.JTextField();
txtMission = new javax.swing.JTextField();
lblMission = new javax.swing.JLabel();
cmdCancel = new javax.swing.JButton();
cmdOk = new javax.swing.JButton();
cmdCreate = new javax.swing.JButton();
lblEmblem = new javax.swing.JLabel();
dlogPassword = new javax.swing.JDialog();
jPanel3 = new javax.swing.JPanel();
lblIntro = new javax.swing.JLabel();
lblIntro2 = new javax.swing.JLabel();
txtUsername = new javax.swing.JTextField();
txtPassword = new javax.swing.JPasswordField();
lblUsername = new javax.swing.JLabel();
lblPassword = new javax.swing.JLabel();
cmdEnter = new javax.swing.JButton();
cmdMission = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
lblShip = new javax.swing.JLabel();
Marlbls = new javax.swing.JLabel();
dlogMission.getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
lblTitle.setFont(new java.awt.Font("Century Gothic", 1, 14));
lblTitle.setText("Mission Information");
dlogMission.getContentPane().add(lblTitle, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 10, -1, -1));
dlogMission.getContentPane().add(txtName, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 120, 70, -1));
lblName.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblName.setText("Name");
dlogMission.getContentPane().add(lblName, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 120, -1, -1));
lblJob.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblJob.setText("Job Title");
dlogMission.getContentPane().add(lblJob, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 150, -1, -1));
dlogMission.getContentPane().add(txtJob, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 150, 70, -1));
dlogMission.getContentPane().add(txtJob1, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 150, 70, -1));
dlogMission.getContentPane().add(txtMission, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 180, 70, -1));
lblMission.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblMission.setText("Mission Number");
dlogMission.getContentPane().add(lblMission, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 180, -1, -1));
cmdCancel.setText("Cancel");
cmdCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdCancelActionPerformed(evt);
}
});
dlogMission.getContentPane().add(cmdCancel, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 220, 80, -1));
cmdOk.setText("Ok");
cmdOk.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdOkActionPerformed(evt);
}
});
dlogMission.getContentPane().add(cmdOk, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 220, 80, -1));
cmdCreate.setText("Create");
dlogMission.getContentPane().add(cmdCreate, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 250, -1, -1));
dlogMission.getContentPane().add(lblEmblem, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 70, -1, -1));
dlogPassword.getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
dlogPassword.setTitle("Login");
dlogPassword.setAlwaysOnTop(true);
dlogPassword.setBackground(java.awt.Color.white);
dlogPassword.setModal(true);
jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
lblIntro.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblIntro.setText("Please enter your username and ");
jPanel3.add(lblIntro, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 10, -1, -1));
lblIntro2.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblIntro2.setText("password to continue.");
jPanel3.add(lblIntro2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 30, -1, -1));
jPanel3.add(txtUsername, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 60, 60, -1));
jPanel3.add(txtPassword, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 90, 60, -1));
lblUsername.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblUsername.setText("Username");
jPanel3.add(lblUsername, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 60, 80, -1));
lblPassword.setFont(new java.awt.Font("Century Gothic", 0, 12));
lblPassword.setText("Password");
jPanel3.add(lblPassword, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 90, 80, -1));
cmdEnter.setText("Enter");
jPanel3.add(cmdEnter, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 120, -1, -1));
dlogPassword.getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, 260, 150));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
cmdMission.setText("Mission");
cmdMission.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdMissionActionPerformed(evt);
}
});
getContentPane().add(cmdMission, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 250, -1, -1));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setBackground(new java.awt.Color(0, 0, 0));
jPanel1.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 0, 0)));
lblShip.setIcon(new javax.swing.ImageIcon("C:\\Documents and Settings\\0402900\\0402900 - Assign\\src\\assign\\space.JPG"));
jPanel1.add(lblShip, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 150, -1, -1));
Marlbls.setIcon(new javax.swing.ImageIcon("C:\\Documents and Settings\\0402900\\0402900 - Assign\\src\\assign\\mars.JPG"));
jPanel1.add(Marlbls, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 0, -1, -1));
jPanel2.add(jPanel1);
getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 470, 300));
pack();
}
// </editor-fold>
private void cmdCancelActionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
}
private void cmdOkActionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
confirm = true;
}
private void cmdMissionActionPerformed(java.awt.event.ActionEvent evt) {
Dialog d = new Dialog(this,true); // the modal argument is set to true
d.setVisible(true);
txtName.setText(d.getName());
}
/**
* @param args the command line arguments
*/
public String getName(){ // to return values from form on dialog
if (confirm)
return txtName.getText();
else
return null;
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new assign().setVisible(true);
}
});
}
THANKS!
# 5 Re: Dialogs and Forms
...but there must be some error in the way you have populated these dialogs with components. :confused:
You don't have to make a JDialog extension (a subclass of a JDialog) for this, but I prefer to isolate my dialogs in classes instead of spreading their logic all over the application code, at least if they have many input fields/buttons and are going to handle some processing logic.
Anyway, here is a setup that uses the bare bones of the JDialog functionality. Maybe it can give you some hints.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* Very simple dialog usage
*/
public class Assign extends JFrame implements ActionListener {
JButton showDialogBtn = new JButton();
FlowLayout flowLayout1 = new FlowLayout();
JTextField tf=new JTextField("test data",15);
JTextField tf2=new JTextField(15);
JButton btn=new JButton ("OK");
JDialog dlg=null;
public Assign() {
try {
jbInit();
showDialogBtn.addActionListener(this);
btn.addActionListener(this); // make the frame a listener to dlg OK button
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Assign assign = new Assign();
assign.setBounds(10,10,200,100);
assign.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
assign.setVisible(true);
}
private void jbInit() throws Exception {
showDialogBtn.setText("Show Dialog");
this.getContentPane().setLayout(flowLayout1);
this.getContentPane().add(showDialogBtn, null);
this.getContentPane().add(tf2, null);
}
void showDialog () {
dlg=new JDialog(this,"A Dialog",true);
dlg.getContentPane().setLayout(new FlowLayout());
dlg.getContentPane().add(tf);
dlg.getContentPane().add(btn);
dlg.setBounds(210,10,200,100);
dlg.setVisible(true); // <-- here the processing will hold until dlg disposal
tf2.setText("got: "+tf.getText());
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()==showDialogBtn) {
showDialog();
} if (e.getSource()==btn) {
dlg.dispose();
}
}
}
sjalle at 2007-11-11 22:41:34 >
