0

I have made a JFrame form which has few buttons and text fields in it.

It looks perfectly fine when running on a small window. But when I maximize it all the buttons and text fields get scattered and are not centered.

Is there any way that the frame looks centered even when the window is maximized?

package studentsmarks;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;

public class LoginCheck extends javax.swing.JFrame {

    /**
     * Creates new form LoginCheck
     */
    public LoginCheck() {

        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.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        username = new javax.swing.JTextField();
        password = new javax.swing.JPasswordField();
        signin = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Username");

        jLabel2.setText("Password");

        signin.setText("Log In");
        signin.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                signinActionPerformed(evt);
            }
        });

        jButton1.setText("Sign Up");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jLabel3.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
        jLabel3.setText("New User?");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(65, 65, 65)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(signin)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(password, javax.swing.GroupLayout.DEFAULT_SIZE, 95, Short.MAX_VALUE)
                                .addComponent(username))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(193, 193, 193)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jButton1)
                            .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(226, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(71, 71, 71)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(username, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(41, 41, 41)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(password, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(32, 32, 32)
                .addComponent(signin)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 62, Short.MAX_VALUE)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addContainerGap())
        );

        setSize(new java.awt.Dimension(524, 365));
        setLocationRelativeTo(null);
    }// </editor-fold>                        

    private void signinActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:

         Connection conn = null;

        try{
      //CLass.forName
      conn = DriverManager.getConnection("jdbc:mysql://localhost/autouser","root","");
      String sql = "select * from test where username = ? and password = ?";  
       PreparedStatement pstmt = conn.prepareStatement(sql);
       pstmt.setString(1, username.getText());
       pstmt.setString(2, password.getText());
       ResultSet rs = pstmt.executeQuery();
       if(rs.next()){

       JOptionPane.showMessageDialog(null,"Logged In Successfully");
         String sql1 ="INSERT INTO login(username,password) VALUES ('"+username.getText()+"','"+password.getText()+"')";
        pstmt = conn.prepareStatement(sql1);
        int r1 = pstmt.executeUpdate(sql1);

       //String sub = textSub.getText();

        new SubjectDB().setVisible(true);
      this.setVisible(false);

       }
       else{
           JOptionPane.showMessageDialog(null,"username and password not correct");
           username.setText("");
           password.setText("");
       }
        conn.close();

 }

   catch(Exception e){
    JOptionPane.showMessageDialog(null,e);
}


    }                                      

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
             new signup().setVisible(true);
              this.setVisible(false);

    }                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        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(LoginCheck.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(LoginCheck.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(LoginCheck.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(LoginCheck.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoginCheck().setVisible(true);

            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPasswordField password;
    private javax.swing.JButton signin;
    private javax.swing.JTextField username;
    // End of variables declaration                   
}
Andrew Thompson
  • 168,117
  • 40
  • 217
  • 433
Sneha P
  • 31
  • 1
  • 5
  • Show your code so far. – PeterMmm Apr 09 '17 at 08:13
  • 1
    Consider using a `GridBagLayout` which is designed to layout the components around the center of the container – MadProgrammer Apr 09 '17 at 08:19
  • Ohkk i'll try doing that.But is there any other way like changing the properties from netbeans itself to achive this? @MadProgrammer – Sneha P Apr 09 '17 at 08:32
  • Agree with @MadProgrammer. A `GridBagLayout` can center a panel with that contains the components. E.G. as seen in [this answer](http://stackoverflow.com/a/12768609/418556). – Andrew Thompson Apr 09 '17 at 08:32
  • *"changing the properties from netbeans"* No. You need to change the Java code. And stop letting the IDE use you. Use **it** to code Java. – Andrew Thompson Apr 09 '17 at 08:33
  • okay @AndrewThompson – Sneha P Apr 09 '17 at 08:34
  • As an aside, if the components are not going to be stretched to make use of the available size, what is the point of resizing the GUI or allowing it to be resized? Consider using `theFrame.setResizable(false)` .. – Andrew Thompson Apr 09 '17 at 08:41
  • You can change the layout in netbeans, but it will try an maintain the results of the old layout, which just makes a mess – MadProgrammer Apr 09 '17 at 08:47

0 Answers0