From cca61c9f562d2c9e2be13ec16abe134d209b54e3 Mon Sep 17 00:00:00 2001 From: O'Shea Date: Thu, 10 Dec 2020 14:03:54 -0500 Subject: Final implementation, ready for presentation! --- src/chatApp/LoginGUI.java | 182 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 src/chatApp/LoginGUI.java (limited to 'src/chatApp/LoginGUI.java') diff --git a/src/chatApp/LoginGUI.java b/src/chatApp/LoginGUI.java new file mode 100644 index 0000000..f6ad5b8 --- /dev/null +++ b/src/chatApp/LoginGUI.java @@ -0,0 +1,182 @@ +package chatApp; + +import java.awt.* ; +import java.util.* ; +import javax.swing.* ; + +public class LoginGUI extends javax.swing.JFrame { + + + String ip ; + String username ; + boolean done ; + + + public String getIP() + { + return ip ; + } + + public String getUsername() + { + return username ; + } + + public boolean isDone() + { + return done ; + } + + +public LoginGUI() { + initComponents(); +} + +@SuppressWarnings("unchecked") +// +private void initComponents() + { + + + jLabel1 = new javax.swing.JLabel(); + jTextField1 = new javax.swing.JTextField(); + jLabel2 = new javax.swing.JLabel(); + jLabel3 = new javax.swing.JLabel(); + ipBox = new javax.swing.JTextField(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + setTitle("java chat login"); + setAlwaysOnTop(true); + setResizable(false); + + jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + jLabel1.setText("Enter Server's IP:"); + + jTextField1.setHorizontalAlignment(javax.swing.JTextField.CENTER); + ipBox.setHorizontalAlignment(javax.swing.JTextField.CENTER); + jTextField1.setToolTipText(""); + jTextField1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jTextField1ActionPerformed(evt); + } + }); + + jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + jLabel2.setText("Enter Username:"); + + jLabel3.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N + jLabel3.setText("inputs must be at least one character"); + jLabel3.setEnabled(false); + + ipBox.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jTextField2ActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap(43, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 132, Short.MAX_VALUE) + .addComponent(ipBox)) + .addGap(40, 40, 40)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(jLabel3) + .addContainerGap()))) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(40, 40, 40) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(ipBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel2)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel3) + .addContainerGap(22, Short.MAX_VALUE)) + ); + + pack(); + setLocationRelativeTo(null); + }// + + private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) + { + if( ipBox.getText().isBlank() ) + { + jLabel3.setEnabled( true ); + } + else + { + jTextField1.grabFocus(); + } + } + + private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) + { + if( jTextField1.getText().isBlank() || ipBox.getText().isBlank() ) + { + jLabel3.setEnabled( true ); + } + else + { + this.ip = ipBox.getText() ; + this.username = jTextField1.getText() ; + this.done = true ; + dispose(); + } + } +/** + * @param args the command line arguments + */ +public static void main(String args[]) { + try { + for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { + if ("Nimbus".equals(info.getName())) { + javax.swing.UIManager.setLookAndFeel(info.getClassName()); + break; + } + } + } catch (ClassNotFoundException ex) { + java.util.logging.Logger.getLogger(LoginGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + java.util.logging.Logger.getLogger(LoginGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + java.util.logging.Logger.getLogger(LoginGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(LoginGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new LoginGUI().setVisible(true); + } + }); +} + + + +// Variables declaration - do not modify +private javax.swing.JLabel jLabel1; +private javax.swing.JLabel jLabel2; +private javax.swing.JLabel jLabel3; +private javax.swing.JTextField jTextField1; +private javax.swing.JTextField ipBox; +// End of variables declaration +} -- cgit v1.3.1-4-g156e