JavaRanch » Java Forums »
Java »
Swing / AWT / SWT
| Author |
Problem with gridbaglayout in JPanel
|
andrew beales
Greenhorn
Joined: Nov 04, 2002
Posts: 15
|
|
Hello I am trying to display contact information in three seperate Jpanels on tabbbed panes.I would like to get help in configuring maybe just the pane of void showPane1().I need something like Searchlb | Combodropname1 firstnamelb | firstnametxt | lastnamelb | lastnametxt Addresslb addresslb.Horizontal-----------------------*- citylb | citytxt | statelb | statetxt postcodelb | postcodetxt | countrylb | countrytxt emaillb | emailtxt | homephonelb | homephonetxt faxnumberlb | faxnumbertxt ----------------------------------------------------------------- Other panes have buttons Here`s the code it operates on login of MSAccess table called persons: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.io.*; import java.util.Date; import java.text.NumberFormat; public class Addressbook extends JFrame{ // Define constant variables final static String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; final static String url = "jdbc dbc:addBKTAFE"; final static String login = "LOG-IN"; final static String tab_login = "Log-in"; final static String tab1 = "INQUIRE Personnel Details"; final static String tab2 = "UPDATE/DELETE Personnel Details"; final static String tab3 = "INSERT Personnel Details"; final static String insert = "SAVE RECORD"; final static String update = "UPDATE RECORD"; final static String delete = "DELETE RECORD"; final static String inquire = "INQUIRE RECORD"; final static String clear = " CLEAR "; final static String relogin = "Log-in failed! Please relog-in!"; final static String norecfound = "No Record Found!"; final static String recinserted = "Record Inserted!"; final static String recupdated = "Record Updated!"; final static String recdeleted = "Record Deleted!"; final static String numericerror = "Age should be numeric!"; final static String information = "INFORMATION"; final static String error = "ERROR"; final static String genexception = "GENERAL EXCEPTION"; final static String sqlexception = "SQL EXCEPTION"; final static String confdelete = "CONFIRM DELETE"; final static String slash = "/"; final static String table1 = "persons"; final static String table2 = "Addresses"; // Events events = new Events(this); // Define variables for general use String sql = ""; // Used to store sql statements int pane_number = 0; // Used to indicate what screen needs to be processed // like resetting input fields and comboboxes boolean abort = false;// Used to indicate if error found to avoid further // processing/validations // Define container, panels and tabbedpane Container cntr = getContentPane(); JTabbedPane tpane = new JTabbedPane(); JPanel cbpanel1 , cbpanel2 , cbpanel3, panel1 , panel2 , panel3; // Setup constraints and type of layout GridBagConstraints constraints = new GridBagConstraints(); GridBagConstraints constraints1 = new GridBagConstraints(); GridBagConstraints constraints2 = new GridBagConstraints(); GridBagConstraints constraints3 = new GridBagConstraints(); GridBagLayout layout = new GridBagLayout (); // Define fonts to be used Font labelFont = new Font("Arial",Font.PLAIN,12); Font buttonFont = new Font("Arial",Font.BOLD,13); // Define labels JLabel lbUser = new JLabel("Enter User ID: " ); JLabel lbPassword = new JLabel("Enter Password: "); JLabel lbSelectName = new JLabel("Search Name: " ); JLabel lbFirstName = new JLabel("First Name: " ); JLabel lbLastName = new JLabel("Last Name: " ); JLabel lbAddress = new JLabel("Address: " ); JLabel lbCity = new JLabel("City" ); JLabel lbState = new JLabel("State: " ); JLabel lbPostcode = new JLabel("Postcode" ); JLabel lbCountry = new JLabel("Country" ); JLabel lbEmailAddress = new JLabel("Email Address: " ); JLabel lbHomeNumber = new JLabel("Home Phone No.: " ); JLabel lbFaxNumber = new JLabel("Fax No.: " ); // Define combo boxes in third screen (insert pane) JComboBox cbName1 = new JComboBox(); JComboBox cbPersonId1 = new JComboBox(); // Define combo boxes in second (update/delete pane) JComboBox cbName2 = new JComboBox(); JComboBox cbPersonId2 = new JComboBox(); // Define buttons, text fields and password field JButton btLogin = new JButton (login ); JButton btInsert = new JButton (insert ); JButton btUpdate = new JButton (update ); JButton btDelete = new JButton (delete ); JButton btInquire = new JButton (inquire); JButton btClear = new JButton (clear ); JPasswordField jpPassword = new JPasswordField(10 ); JTextField tfUser = new JTextField("",10 ); // Inquiry fields on first screen (inquiry pane) JTextField tfFirstName1 = new JTextField("",30); JTextField tfLastName1 = new JTextField("",30); JTextField tfAddress1 = new JTextField("",30); JTextField tfCity1 = new JTextField("",15); JTextField tfState1 = new JTextField("",15); JTextField tfPostcode1 = new JTextField("",30); JTextField tfCountry1 = new JTextField("",15 ); JTextField tfEmailAddress1 = new JTextField("",30); JTextField tfHomeNumber1 = new JTextField("",15); JTextField tfFaxNumber1 = new JTextField("",15 ); // Input fields on second screen (update/delete pane) JTextField tfFirstName2 = new JTextField("",30); JTextField tfLastName2 = new JTextField("",30); JTextField tfAddress2 = new JTextField("",30); JTextField tfCity2 = new JTextField("",15); JTextField tfState2 = new JTextField("",15); JTextField tfPostcode2 = new JTextField("",30); JTextField tfCountry2 = new JTextField("",15 ); JTextField tfEmailAddress2 = new JTextField("",30); JTextField tfHomeNumber2 = new JTextField("",15); JTextField tfFaxNumber2 = new JTextField("",15 ); // Input fields on third screen (insert pane) JTextField tfFirstName3 = new JTextField("",30); JTextField tfLastName3 = new JTextField("",30); JTextField tfAddress3 = new JTextField("",30); JTextField tfCity3 = new JTextField("",15); JTextField tfState3 = new JTextField("",15); JTextField tfPostcode3 = new JTextField("",30); JTextField tfCountry3 = new JTextField("",15 ); JTextField tfEmailAddress3 = new JTextField("",30); JTextField tfHomeNumber3 = new JTextField("",15); JTextField tfFaxNumber3 = new JTextField("",15 ); //------------------------------------------------------------------------------>>> //////////////////////////////////////////////////////////////////////////////// //-----------------------Start Addressbook()------------------------------------>>> Addressbook(){ } // define listener after adding items to CB to avoid triggering it // cbName1.addItemListener(new ItemListener()); // public void itemStateChanged(ItemEvent e){ //--------------------------END Addressbook constructor------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //------------------------------------------------------------------------------>>> //------------------------------------------------------------------------------>>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start setupLoginPanel()----------------------------------->>> // Setup the login screen public void setupLoginPanel(){ // set application title setTitle("Address Book Application"); // center screen setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getWidth())/2, (Toolkit.getDefaultToolkit().getScreenSize().height - getHeight())/2); panel1 = new JPanel(); // set screen border panel1.setBorder(BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab_login, panel1); // add panel to container cntr.add(tpane); // setup layout as GridBagLayout constraints.insets = new Insets(2,2,2,2); panel1.setLayout(layout); // setup User ID label in display area lbUser.setFont(labelFont); constraints.ipadx = 2; constraints.ipady = 2; constraints.gridx = 0; constraints.gridy = 0; constraints.anchor = GridBagConstraints.WEST; layout.setConstraints(lbUser, constraints); panel1.add(lbUser); // setup User ID input field in display area tfUser.setFont(labelFont); constraints.ipadx = 2; constraints.ipady = 2; constraints.gridx = 1; constraints.gridy = 0; constraints.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfUser, constraints); panel1.add(tfUser); // setup Password label in display area lbPassword.setFont(labelFont); constraints.ipadx = 2; constraints.ipady = 2; constraints.gridx = 0; constraints.gridy = 1; constraints.anchor = GridBagConstraints.WEST; layout.setConstraints(lbPassword, constraints); panel1.add(lbPassword); // setup Password input field in display area jpPassword.setEchoChar('*'); constraints.ipadx = 2; constraints.ipady = 2; constraints.gridx = 1; constraints.gridy = 1; layout.setConstraints(jpPassword, constraints); panel1.add(jpPassword); // setup Login button in display area btLogin.setFont(buttonFont); constraints.anchor = GridBagConstraints.WEST; constraints.gridy = 3; constraints.gridx = 1; layout.setConstraints(btLogin, constraints); panel1.add(btLogin); // setup login button listener btLogin.addActionListener(new ButtonHandler()); // allow ALT L to press login button btLogin.setMnemonic('l'); } //--------------------End setupLoginPanel()------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start login()--------------------------------------------->>> // Validate user input from the login screen based on information from login // table (note: manually create/update your login from table LOGIN). public void login(){ String user = tfUser.getText(); user = user.trim(); char[] pw = jpPassword.getPassword(); String password = new String(pw).trim(); sql = "SELECT * FROM persons WHERE username='"+ user+"' AND password='"+password+"'"; try{ // load MS Access driver Class.forName(driver); }catch(java.lang.ClassNotFoundException ex){ JOptionPane.showMessageDialog(null,ex.getMessage(), error , JOptionPane.PLAIN_MESSAGE); } try{ // setup connection to DBMS Connection conn = DriverManager.getConnection(url); // create statement Statement stmt = conn.createStatement(); // execute sql statement stmt.execute(sql); ResultSet rs = stmt.getResultSet(); boolean recordfound = rs.next(); if (recordfound){ tpane.removeTabAt(0); showPane1(); showPane2(); showPane3(); } else{ // username/password invalid JOptionPane.showMessageDialog(null,relogin, error, JOptionPane.INFORMATION_MESSAGE); //clear login and password fields tfUser.setText (""); jpPassword.setText(""); } conn.close(); }catch(Exception ex){ JOptionPane.showMessageDialog(null,ex.getMessage(), genexception, JOptionPane.INFORMATION_MESSAGE); } } //--------------------End login()----------------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start showPane1()----------------------------------------->>> // Setup screen 1(inquiry pane) including labels, input fields, comboboxes. // Table PERSONS is read to list inquiry parameters. void showPane1(){ panel1 = new JPanel(); cbpanel1 = new JPanel(); // set screen border panel1.setBorder(BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab1, panel1); // setup layout as GridBagLayout constraints1.insets = new Insets(2,2,2,2); panel1.setLayout (layout); cbpanel1.setLayout (layout); // setup Name combobox label lbSelectName.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 0; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbSelectName, constraints1); panel1.add(lbSelectName); // setup Name combobox as search key cbName1.setFont(labelFont); constraints1.ipady = 10; constraints1.gridx = 1; constraints1.gridy = 0; constraints1.gridwidth = 3; constraints1.anchor = GridBagConstraints.WEST; constraints1.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(cbName1, constraints1); panel1.add(cbName1); // setup search combobox (Name and corresponding key) cbName1.addItem ("Choose one:"); cbPersonId1.addItem("0"); // setup First Name label in display area lbFirstName.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 1; constraints1.anchor = GridBagConstraints.WEST; constraints1.fill = GridBagConstraints.NONE; constraints1.gridwidth = 1; layout.setConstraints(lbFirstName, constraints1); panel1.add(lbFirstName); // setup First Name input field in display area tfFirstName1.setFont(labelFont); tfFirstName1.setEditable(false); constraints1.gridx = 1; constraints1.gridy = 1; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFirstName1, constraints1); panel1.add(tfFirstName1); // setup Last Name label in display area lbLastName.setFont(labelFont); constraints1.gridx = 2; constraints1.gridy = 1; constraints1.anchor = GridBagConstraints.WEST; constraints1.fill = GridBagConstraints.NONE; layout.setConstraints(lbLastName, constraints1); panel1.add(lbLastName); // setup Last Name input field in display area tfLastName1.setFont(labelFont); tfLastName1.setEditable(false); constraints1.gridx = 3; constraints1.gridy = 1; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfLastName1, constraints1); panel1.add(tfLastName1); // setup Address label in display area lbAddress.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 2; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbAddress, constraints1); panel1.add(lbAddress); // setup Address input field in display area tfAddress1.setFont(labelFont); tfAddress1.setEditable(false); constraints1.gridx = 1; constraints1.gridy = 2; constraints1.gridwidth = 3; constraints1.anchor = GridBagConstraints.WEST; constraints1.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfAddress1, constraints1); panel1.add(tfAddress1); // setup City label in display area lbCity.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 3; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbCity, constraints1); panel1.add(lbCity); // setup City input field in display area tfCity1.setFont(labelFont); tfCity1.setEditable(false); constraints1.gridx = 1; constraints1.gridy = 3; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCity1, constraints1); panel1.add(tfCity1); // setup State label in display area lbState.setFont(labelFont); constraints1.gridx = 2; constraints1.gridy = 3; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbState, constraints1); panel1.add(lbState); // setup State input field in display area tfState1.setFont(labelFont); tfState1.setEnabled(false); constraints1.gridx = 3; constraints1.gridy = 3; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfState1, constraints1); panel1.add(tfState1); // setup Postcode label in display area lbPostcode.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 4; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbPostcode, constraints1); panel1.add(lbPostcode); // setup Address input field in display area tfPostcode1.setFont(labelFont); tfPostcode1.setEditable(false); constraints1.gridx = 1; constraints1.gridy = 4; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfPostcode1, constraints1); panel1.add(tfPostcode1); // setup Country label in display area lbCountry.setFont(labelFont); constraints1.gridx = 2; constraints1.gridy = 4; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbCountry, constraints1); panel1.add(lbCountry); // setup Country input field in display area tfCountry1.setFont(labelFont); tfCountry1.setEditable(false); constraints1.gridx = 3; constraints1.gridy = 4; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCountry1, constraints1); panel1.add(tfCountry1); // setup Email Address label in display area lbEmailAddress = new JLabel ("Email Address:"); lbEmailAddress.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 5; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbEmailAddress, constraints1); panel1.add(lbEmailAddress); // setup Email Address input field in display area tfEmailAddress1.setFont(labelFont); constraints1.gridx = 1; constraints1.gridy = 5; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfEmailAddress1, constraints1); panel1.add(tfEmailAddress1); // setup Home Phone Number label in display area lbHomeNumber.setFont(labelFont); constraints1.gridx = 2; constraints1.gridy = 5; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbHomeNumber, constraints1); panel1.add(lbHomeNumber); // setup Home Phone Number input field in display area tfHomeNumber1.setFont(labelFont); tfHomeNumber1.setEditable(false); constraints1.gridx = 3; constraints1.gridy = 5; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfHomeNumber1, constraints1); panel1.add(tfHomeNumber1); // setup Fax Number label in display area lbFaxNumber.setFont(labelFont); constraints1.gridx = 0; constraints1.gridy = 6; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(lbFaxNumber, constraints1); panel1.add(lbFaxNumber); // setup Fax Number input field in display area tfFaxNumber1.setFont(labelFont); tfFaxNumber1.setEditable(false); constraints1.gridx = 1; constraints1.gridy = 6; constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFaxNumber1, constraints1); panel1.add(tfFaxNumber1); // indicate inquiry pane pane_number = 1; // read table get the list of names in CB search key accessDBInit(); // define listener after adding items to CB to avoid triggering it cbName1.addItemListener(new ComboBoxHandler()); } //--------------------End showPane1()------------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start showPane2()----------------------------------------->>> // Setup screen 2(update and delete pane) including labels, input fields, // comboboxes, and buttons. Table PERSONS is read to list inquiry parameters. void showPane2(){ panel2 = new JPanel(); cbpanel2 = new JPanel(); labelFont = new Font("Arial",Font.PLAIN,12); buttonFont = new Font("Arial",Font.BOLD,12); // set screen border panel2.setBorder(BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab2, panel2); // setup layout as GridBagLayout constraints2.insets = new Insets(2,2,2,2); panel2.setLayout (layout); cbpanel2.setLayout (layout); // setup Name combobox label lbSelectName.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 0; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbSelectName, constraints2); panel1.add(lbSelectName); // setup Name combobox as search key cbName2.setFont(labelFont); constraints2.ipady = 10; constraints2.gridx = 1; constraints2.gridy = 0; constraints2.gridwidth = 3; constraints2.anchor = GridBagConstraints.WEST; constraints2.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(cbName1, constraints2); panel1.add (cbName1); // setup search combobox (Name and corresponding key) cbName1.addItem ("Choose one:"); cbPersonId1.addItem("0"); // setup First Name label in display area lbFirstName.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 1; constraints2.anchor = GridBagConstraints.WEST; constraints2.fill = GridBagConstraints.NONE; constraints2.gridwidth = 1; layout.setConstraints(lbFirstName, constraints2); panel1.add(lbFirstName); // setup First Name input field in display area tfFirstName2.setFont(labelFont); tfFirstName2.setEditable(false); constraints2.gridx = 1; constraints2.gridy = 1; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFirstName2, constraints2); panel1.add(tfFirstName2); // setup Last Name label in display area lbLastName.setFont(labelFont); constraints2.gridx = 2; constraints2.gridy = 1; constraints2.anchor = GridBagConstraints.WEST; constraints2.fill = GridBagConstraints.NONE; layout.setConstraints(lbLastName, constraints2); panel1.add(lbLastName); // setup Last Name input field in display area tfLastName2.setFont(labelFont); tfLastName2.setEditable(false); constraints2.gridx = 3; constraints2.gridy = 1; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfLastName2, constraints2); panel1.add(tfLastName2); // setup Address label in display area lbAddress.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 2; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbAddress, constraints2); panel1.add(lbAddress); // setup Address input field in display area tfAddress2.setFont(labelFont); tfAddress2.setEditable(false); constraints2.gridx = 1; constraints2.gridy = 2; constraints2.gridwidth = 3; constraints2.anchor = GridBagConstraints.WEST; constraints2.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfAddress2, constraints2); panel1.add(tfAddress2); // setup City label in display area lbCity.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 3; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbCity, constraints2); panel1.add(lbCity); // setup City input field in display area tfCity2.setFont(labelFont); tfCity2.setEditable(false); constraints2.gridx = 1; constraints2.gridy = 3; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCity2, constraints2); panel1.add(tfCity2); // setup State label in display area lbState.setFont(labelFont); constraints2.gridx = 2; constraints2.gridy = 3; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbState, constraints2); panel1.add(lbState); // setup State input field in display area tfState2.setFont(labelFont); tfState2.setEnabled(false); constraints2.gridx = 3; constraints2.gridy = 3; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfState2, constraints2); panel1.add(tfState2); // indicate inquiry pane pane_number = 1; // setup Address label in display area lbPostcode.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 4; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbPostcode, constraints2); panel1.add(lbPostcode); // setup Address input field in display area tfPostcode2.setFont(labelFont); tfPostcode2.setEditable(false); constraints2.gridx = 1; constraints2.gridy = 4; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfPostcode2, constraints2); panel1.add(tfPostcode2); // setup Country label in display area lbCountry.setFont(labelFont); constraints2.gridx = 2; constraints2.gridy = 4; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbCountry, constraints2); panel1.add(lbCountry); // setup Country input field in display area tfCountry2.setFont(labelFont); tfCountry2.setEditable(false); constraints2.gridx = 3; constraints2.gridy = 4; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCountry2, constraints2); panel1.add(tfCountry2); // setup Email Address label in display area lbEmailAddress = new JLabel ("Email Address:"); lbEmailAddress.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 5; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbEmailAddress, constraints2); panel1.add(lbEmailAddress); // setup Email Address input field in display area tfEmailAddress2.setFont(labelFont); constraints2.gridx = 1; constraints2.gridy = 5; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfEmailAddress2, constraints2); panel1.add(tfEmailAddress2); // setup Home Phone Number label in display area lbHomeNumber.setFont(labelFont); constraints2.gridx = 2; constraints2.gridy = 5; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbHomeNumber, constraints2); panel1.add(lbHomeNumber); // setup Home Phone Number input field in display area tfHomeNumber2.setFont(labelFont); tfHomeNumber2.setEditable(false); constraints2.gridx = 3; constraints2.gridy = 5; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfHomeNumber2, constraints2); panel1.add(tfHomeNumber2); // setup Fax Number label in display area lbFaxNumber.setFont(labelFont); constraints2.gridx = 0; constraints2.gridy = 6; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(lbFaxNumber, constraints2); panel1.add(lbFaxNumber); // setup Fax Number input field in display area tfFaxNumber2.setFont(labelFont); tfFaxNumber2.setEditable(false); constraints2.gridx = 1; constraints2.gridy = 6; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFaxNumber2, constraints2); panel1.add(tfFaxNumber2); // setup UPDATE button in display area btUpdate.setFont(buttonFont); constraints2.gridx = 3; constraints2.gridy = 7; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(btUpdate, constraints2); panel2.add(btUpdate); // setup DELETE button in display area btDelete.setFont(buttonFont); constraints2.gridx = 1; constraints2.gridy = 7; constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(btDelete, constraints2); panel2.add(btDelete); btUpdate.addActionListener(new ButtonHandler()); btDelete.addActionListener(new ButtonHandler()); // allow ALT U to press update button btUpdate.setMnemonic('u'); // allow ALT D to press delete button btDelete.setMnemonic('d'); // read table get the list of names in combo box search key accessDBInit(); // define listener after adding items to CB to avoid triggering it cbName2.addItemListener(new ComboBoxHandler()); } //--------------------End showPane2()------------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start showPane3()----------------------------------------->>> // Setup screen 2(insert pane) including labels, input fields, comboboxes, // and buttons. void showPane3(){ panel3 = new JPanel(); // set screen border panel3.setBorder(BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab3, panel3); // setup layout as GridBagLayout constraints3.insets = new Insets(2,2,2,2); panel3.setLayout (layout); // setup First Name label in display area JLabel lbFirstName = new JLabel("First Name:"); lbFirstName.setFont(labelFont); constraints3.gridx = 0; constraints3.gridy = 0; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbFirstName, constraints3); panel3.add(lbFirstName); // setup First Name input field in display area tfFirstName3.setFont(labelFont); constraints3.ipady = 8; // adjust heigth of input field constraints3.gridx = 1; constraints3.gridy = 0; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFirstName3, constraints3); panel3.add(tfFirstName3); // setup Last Name label in display area lbLastName = new JLabel("Last Name: "); lbLastName.setFont(labelFont); constraints3.gridx = 2; constraints3.gridy = 0; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbLastName, constraints3); panel3.add(lbLastName); // setup Last Name input field in display area tfLastName3.setFont(labelFont); constraints3.gridx = 3; constraints3.gridy = 0; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfLastName3, constraints3); panel3.add(tfLastName3); // setup Middle Name label in display area lbAddress = new JLabel("Address: "); lbAddress.setFont(labelFont); constraints3.gridx = 0; constraints3.gridy = 1; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbAddress, constraints3); panel3.add(lbAddress); // setup Middle Name input field in display area tfAddress3.setFont(labelFont); constraints3.gridx = 1; constraints3.gridy = 1; constraints3.gridwidth = 3; constraints3.anchor = GridBagConstraints.WEST; constraints3.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfAddress3, constraints3); panel3.add(tfAddress3); // setup City label in display area lbCity.setFont(labelFont); constraints3.gridx = 0; constraints3.gridy = 2; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbCity, constraints3); panel1.add(lbCity); // setup City input field in display area tfCity3.setFont(labelFont); tfCity3.setEditable(false); constraints3.gridx = 1; constraints3.gridy = 2; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCity3, constraints3); panel1.add(tfCity3); // setup State label in display area lbState.setFont(labelFont); constraints3.gridx = 2; constraints3.gridy = 2; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbState, constraints3); panel1.add(lbState); // setup State input field in display area tfState3.setFont(labelFont); tfState3.setEnabled(false); constraints3.gridx = 3; constraints3.gridy = 2; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfState3, constraints3); panel1.add(tfState3); // setup Address label in display area lbPostcode.setFont(labelFont); constraints3.gridx = 0; constraints3.gridy = 3; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbPostcode, constraints3); panel1.add(lbPostcode); // setup Address input field in display area tfPostcode3.setFont(labelFont); tfPostcode3.setEditable(false); constraints3.gridx = 1; constraints3.gridy = 3; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfPostcode3, constraints3); panel1.add(tfPostcode3); // setup Country label in display area lbCountry.setFont(labelFont); constraints3.gridx = 2; constraints3.gridy = 3; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbCountry, constraints3); panel1.add(lbCountry); // setup Country input field in display area tfCountry3.setFont(labelFont); tfCountry3.setEditable(false); constraints3.gridx = 3; constraints3.gridy = 3; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCountry3, constraints3); panel1.add(tfCountry3); // setup Email Address label in display area lbEmailAddress = new JLabel ("Email Address:"); lbEmailAddress.setFont(labelFont); constraints3.gridx = 0; constraints3.gridy = 4; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbEmailAddress, constraints3); panel1.add(lbEmailAddress); // setup Email Address input field in display area tfEmailAddress3.setFont(labelFont); constraints3.gridx = 1; constraints3.gridy = 4; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfEmailAddress3, constraints3); panel1.add(tfEmailAddress3); // setup Home Phone Number label in display area lbHomeNumber.setFont(labelFont); constraints3.gridx = 2; constraints3.gridy = 4; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbHomeNumber, constraints3); panel1.add(lbHomeNumber); // setup Home Phone Number input field in display area tfHomeNumber3.setFont(labelFont); tfHomeNumber3.setEditable(false); constraints3.gridx = 3; constraints3.gridy = 4; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfHomeNumber3, constraints3); panel1.add(tfHomeNumber3); // setup Fax Number label in display area lbFaxNumber.setFont(labelFont); constraints3.gridx = 0; constraints3.gridy = 5; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(lbFaxNumber, constraints3); panel1.add(lbFaxNumber); // setup Fax Number input field in display area tfFaxNumber3.setFont(labelFont); tfFaxNumber3.setEditable(false); constraints3.gridx = 1; constraints3.gridy = 5; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFaxNumber3, constraints3); panel1.add(tfFaxNumber3); // setup INSERT button in display area btInsert.setFont(buttonFont); constraints3.gridx = 0; constraints3.gridy = 6; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(btInsert, constraints3); panel3.add(btInsert); // setup CLEAR button in display area btClear.setFont(buttonFont); constraints3.gridx = 1; constraints3.gridy = 6; constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(btClear, constraints3); panel3.add(btClear); pane_number = 3; btInsert.addActionListener(new ButtonHandler ()); btClear.addActionListener (new ButtonHandler ()); // allow ALT S to press insert button btInsert.setMnemonic('s'); // allow ALT C to press clear button btClear.setMnemonic ('c'); } //--------------------End showPane3()------------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start accessDBInit()-------------------------------------->>> // This will read the table PERSONS to list the names of personnel that are // exisiting from the database. void accessDBInit(){ try{ sql = "SELECT person_id, FirstName, LastName FROM " + table2 +" ORDER BY LastName"; // load MS Access driver Class.forName(driver); // Setup connection to DBMS Connection conn=DriverManager.getConnection(url); // Create statement Statement stmt = conn.createStatement(); boolean hasResults = stmt.execute(sql); if(hasResults){ ResultSet result = stmt.getResultSet(); displayResultsInit(result); } conn.close(); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex.getMessage(),genexception, JOptionPane.PLAIN_MESSAGE); } } //--------------------End accessDBInit()---------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start displayResultsInit()-------------------------------->>> // Put the names of personnels read into the ComboBox Name which will be used // as the search parameters for users. void displayResultsInit(ResultSet rs) throws SQLException{ while(rs.next()){ // get values to display in Name combo box: // concatenate last and first names String name= rs.getString("LastName") + "," + rs.getString("FirstName"); // store person_id(unique identifier) // to display corresponding person details later String person_id = rs.getString("person_id"); switch(pane_number){ case 1: // inquiry screen // put Names in search combo box cbName1.addItem(name); cbPersonId1.addItem(person_id); break; case 2: // update/delete screen // put Names in search combo box cbName2.addItem(name); cbPersonId2.addItem(person_id); } } } //--------------------End displayResultsInit()---------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start updateRecord()-------------------------------------->>> // Update personnel details. void updateRecord(){ try{ // load MS Access driver Class.forName(driver); // Setup connection to DBMS Connection conn = DriverManager.getConnection(url); // Create statement Statement stmt = conn.createStatement(); sql = "UPDATE "+ table2 + " SET "+ "FirstName = '" + tfFirstName2.getText() + "'," + "LastName = '" + tfLastName2.getText() + "'," + "Address = '" + tfAddress2.getText() + "'," + "City = '" + tfCity2.getText() + "'," + "State = '" + tfState2.getText() + "'," + "Postcode= '" + tfPostcode2.getText() + "'," + "Country = " + tfCountry2.getText() + "'," + "HomePhone= '" + tfHomeNumber2.getText() + "'," + "Emailaddress= '" + tfEmailAddress2.getText() + "'," + "FaxNumber = '" + tfFaxNumber2.getText() + "'," + "WHERE person_id = " + cbPersonId2.getSelectedItem().toString(); stmt.executeUpdate(sql); conn.close(); JOptionPane.showMessageDialog(null,recupdated, information, JOptionPane.INFORMATION_MESSAGE); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex.getMessage() + ex.toString(),genexception, JOptionPane.INFORMATION_MESSAGE); } } //--------------------End updateRecord()---------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start deleteRecord()-------------------------------------->>> // Delete personnel records. void deleteRecord(){ try{ // load MS Access driver Class.forName(driver); // Setup connection to DBMS Connection conn = DriverManager.getConnection(url); // Create statement Statement stmt = conn.createStatement(); sql = "DELETE FROM "+ table2+ " WHERE person_id = " + cbPersonId2.getSelectedItem().toString(); stmt.executeUpdate(sql); conn.close(); JOptionPane.showMessageDialog(null,recdeleted, information, JOptionPane.INFORMATION_MESSAGE); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex.getMessage() + ex.toString(),genexception, JOptionPane.INFORMATION_MESSAGE); } } //--------------------End deleteRecord()---------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start insertRecord()-------------------------------------->>> // Insert personnel details. void insertRecord(){ try{ // load MS Access driver Class.forName(driver); // Setup connection to DBMS Connection conn = DriverManager.getConnection(url); // Create statement Statement stmt = conn.createStatement(); sql = "INSERT INTO "+ table2+ " ("+ "FirstName,"+ "LastName,"+ "Addresses,"+ "City,"+ "State,"+ "Postcode,"+ "Country,"+ "EmailAddress,"+ "HomePhone,"+ "FaxNumber" +") VALUES ('"+ tfFirstName3.getText()+ "','"+ tfLastName3.getText()+ "','"+ tfAddress3.getText()+ "','"+ tfCity3.getText()+ "','"+ tfState3.getText()+ "','"+ tfHomeNumber3.getText()+ "','"+ tfFaxNumber3.getText()+ "','"+ tfEmailAddress3.getText()+ "')"; stmt.executeUpdate(sql); conn.close(); JOptionPane.showMessageDialog(null,recinserted, information, JOptionPane.INFORMATION_MESSAGE); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex.getMessage() + ex.toString(),genexception, JOptionPane.INFORMATION_MESSAGE); } } //--------------------End insertRecord()---------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start selectRecord()-------------------------------------->>> // Read personnel table based on the selected item from the Combobox Name. void selectRecord(long person_id){ try{ // select person details based on primary key person_id sql = "SELECT * FROM "+table2+" WHERE person_id = "+person_id; // load MS Access driver Class.forName(driver); }catch (ClassNotFoundException x){ JOptionPane.showMessageDialog(null, x.getMessage(), "ClassNotFoundException", JOptionPane.PLAIN_MESSAGE); } try{ // Setup connection to DBMS Connection conn = DriverManager.getConnection(url); // Create statement Statement stmt = conn.createStatement(); // execute sql statement boolean hasResults = stmt.execute(sql); if(hasResults){ ResultSet rs = stmt.getResultSet(); displayPersonDetails(rs); } else { // no record found JOptionPane.showMessageDialog(null, norecfound, information, JOptionPane.INFORMATION_MESSAGE); } conn.close(); }catch(Exception ex){ JOptionPane.showMessageDialog(null, ex.getMessage(),genexception, JOptionPane.PLAIN_MESSAGE); } } //--------------------End selectRecord()---------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start displayPersonDetails()------------------------------>>> // Populate details screen with data from personnel database. void displayPersonDetails(ResultSet rs)throws SQLException{ while (rs.next()){ // display details switch(pane_number){ case 1: // inquiry screen tfFirstName1.setText (rs.getString("FirstName" )); tfLastName1.setText (rs.getString("LastName" )); tfAddress1.setText (rs.getString("Addrress" )); tfCity1.setText (rs.getString("City")); tfState1.setText (rs.getString("State")); tfPostcode1.setText (rs.getString("Postcode" )); tfCountry1.setText (rs.getString("Country" )); tfEmailAddress1.setText (rs.getString("EmailAddress" )); tfHomeNumber1.setText (rs.getString("HomePhone" )); tfFaxNumber1.setText (rs.getString("FaxNumber" )); break; case 2: // update/delete screen tfFirstName2.setText (rs.getString("FirstName" )); tfLastName2.setText (rs.getString("LastName" )); tfAddress2.setText (rs.getString("Addrress" )); tfCity2.setText (rs.getString("City" )); tfState2.setText (rs.getString("State" )); tfPostcode2.setText (rs.getString("Postcode")); tfCountry2.setText (rs.getString("Country")); tfEmailAddress2.setText (rs.getString("EmailAddress" )); tfHomeNumber2.setText (rs.getString("HomePhone" )); tfFaxNumber2.setText (rs.getString("FaxNumber" )); } } } //--------------------End displayPersonDetails()-------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start clearDetails()-------------------------------------->>> // Reset screen input fields and initialize comboboxes. void clearDetails(){ switch(pane_number){ case 1: // clear date, gender and marital status comboboxes //clearComboBoxes(); // clear search combobox cbName1.removeAllItems(); cbPersonId1.removeAllItems(); // initialize search combobox cbName1.addItem("Choose one:"); cbPersonId1.addItem("0"); cbName1.setSelectedItem("Choose one:"); // clear input fields tfFirstName1.setText (""); tfLastName1.setText (""); tfAddress1.setText (""); tfCity1.setText (""); tfState1.setText (""); tfPostcode1.setText (""); tfCountry1.setText(""); tfEmailAddress1.setText(""); tfFaxNumber1.setText (""); tfHomeNumber1.setText (""); break; case 2: // clear date, gender and marital status comboboxes //clearComboBoxes(); // clear search combobox cbName2.removeAllItems(); cbPersonId2.removeAllItems(); // initialize search combobox cbName2.addItem("Choose one:"); cbPersonId2.addItem("0"); cbName2.setSelectedItem("Choose one:"); // clear input fields tfFirstName2.setText (""); tfLastName2.setText (""); tfAddress2.setText (""); tfCity2.setText (""); tfState2.setText (""); tfPostcode2.setText (""); tfCountry2.setText(""); tfEmailAddress2.setText(""); tfFaxNumber2.setText (""); tfHomeNumber2.setText (""); break; case 3: tfFirstName3.setText (""); tfLastName3.setText (""); tfAddress3.setText (""); tfCity3.setText (""); tfState3.setText (""); tfPostcode3.setText (""); tfCountry3.setText(""); tfEmailAddress3.setText(""); tfFaxNumber3.setText (""); tfHomeNumber3.setText (""); } } //--------------------End clearDetails()---------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //--------------------Start ButtonHandler--------------------------------------->>> // Action listener for the buttons on each screen class ButtonHandler implements ActionListener{ public void actionPerformed(ActionEvent e){ // get the label of the button String action = e.getActionCommand(); if (action!=null){ if(action==login){ // call method accessDB() login(); // if login error, set cursor to user name input field tfUser.requestFocus(); } else if (action==insert){ insertRecord(); // refresh list of names in combo box search key // of inquiry screen if (abort){ // error found in insert abort = false; return; } else{ pane_number = 1; clearDetails(); accessDBInit(); // refresh list of names in combo box search key of // update/delete screen pane_number = 2; clearDetails(); accessDBInit(); tfFirstName3.requestFocus(); } } else if (action==update){ updateRecord(); if (abort){ // error found in update abort = false; return; } else{ // refresh inquiry screen pane_number = 1; clearDetails(); accessDBInit(); tfFirstName2.requestFocus(); } } else if (action==delete){ // ask user to confirm delete int reply = JOptionPane.showConfirmDialog(null, "Are you sure you want to delete?", confdelete, JOptionPane.YES_NO_OPTION); if (reply == JOptionPane.YES_OPTION){ // delete confirmed deleteRecord(); // refresh all screens pane_number = 1; clearDetails(); // setup inquiry search key CB accessDBInit(); pane_number = 2; clearDetails(); // setup update/delete search key CB accessDBInit(); } } else{ // clear button - refresh insert pane pane_number = 3; clearDetails(); } } } } //--------------------End ButtonHandler----------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start ComboBoxHandler------------------------------------->>> // Item listener for the Comboboxes on each screen class ComboBoxHandler implements ItemListener{ public void itemStateChanged(ItemEvent e){ if (e.getItemSelectable().equals(cbName1)){ // combobox from inquiry pane (search name) if (cbName1.getSelectedIndex() != 0){ // index 0 = "Choose one:" // get index clicked int num = (cbName1.getSelectedIndex()); // get corresponding primary key for sql purposes cbPersonId1.setSelectedIndex(num); // convert person_id text into integer(format in DB) long person_id = Integer.parseInt( cbPersonId1.getSelectedItem().toString()); pane_number = 1; // call method to execute sql and display details on screen selectRecord(person_id); } } else if (e.getItemSelectable().equals(cbName2)){ // combobox from update/delete pane (search name) if (cbName2.getSelectedIndex() != 0){ // index 0 = "Choose one:" // get index clicked int num = (cbName2.getSelectedIndex()); // get corresponding primary key for sql purposes cbPersonId2.setSelectedIndex(num); // convert person_id text into integer(format in DB) long person_id = Integer.parseInt( cbPersonId2.getSelectedItem().toString()); pane_number = 2; // call method to execute sql and display details on screen selectRecord(person_id); } } } } //--------------------End ComboBoxHandler--------------------------------------->>> //////////////////////////////////////////////////////////////////////////////// //--------------------Start main------------------------------------------------>>> public static void main(String args[]){ System.out.println("loading.......please wait."); Addressbook app = new Addressbook(); app.setSize(900,385); app.setupLoginPanel(); app.setVisible(true); app.tfUser.requestFocus(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } //--------------------End main---------------------------------------------------->>
|
 |
Paul Stevens
Ranch Hand
Joined: May 17, 2001
Posts: 2823
|
|
So what exactly is the problem. (Other than you don't like code tags. )
|
 |
andrew beales
Greenhorn
Joined: Nov 04, 2002
Posts: 15
|
|
I have recieved some help on getting my initial Jpanel together BUT?? when I add somewhat identical panels to tabbed pane there are alls sorts of problems.Please have a look I get labels in different postions and missing components. Code is import java.awt.*; import javax.swing.*; public class andy extends JFrame { // Define constant variables final static String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; final static String url = "jdbc dbc:addBKTAFE"; final static String login = "LOG-IN"; final static String tab_login = "Log-in"; final static String tab1 = "INQUIRE Personnel Details"; final static String tab2 = "UPDATE/DELETE Personnel Details"; final static String tab3 = "INSERT Personnel Details"; final static String insert = "SAVE RECORD"; final static String update = "UPDATE RECORD"; final static String delete = "DELETE RECORD"; final static String inquire = "INQUIRE RECORD"; final static String clear = " CLEAR "; final static String relogin = "Log-in failed! Please relog-in!"; final static String norecfound = "No Record Found!"; final static String recinserted = "Record Inserted!"; final static String recupdated = "Record Updated!"; final static String recdeleted = "Record Deleted!"; final static String numericerror = "Age should be numeric!"; final static String information = "INFORMATION"; final static String error = "ERROR"; final static String genexception = "GENERAL EXCEPTION"; final static String sqlexception = "SQL EXCEPTION"; final static String confdelete = "CONFIRM DELETE"; final static String slash = "/"; final static String table1 = "persons"; final static String table2 = "Addresses"; //int pane_number = 0; // Define container, panels and tabbedpane Container cntr = getContentPane(); JTabbedPane tpane = new JTabbedPane(); JPanel cbpanel1 , cbpanel2 , cbpanel3, panel1 , panel2 , panel3; // Define fonts to be used Font labelFont = new Font("Arial",Font.PLAIN,12); Font buttonFont = new Font("Arial",Font.BOLD,13); // Define labels JLabel lbUser = new JLabel("Enter User ID: " ); JLabel lbPassword = new JLabel("Enter Password: "); JLabel lbSelectName = new JLabel("Search Name: " ); JLabel lbFirstName = new JLabel("First Name: " ); JLabel lbLastName = new JLabel("Last Name: " ); JLabel lbAddress = new JLabel("Address: " ); JLabel lbCity = new JLabel("City" ); JLabel lbState = new JLabel("State: " ); JLabel lbPostcode = new JLabel("Postcode" ); JLabel lbCountry = new JLabel("Country" ); JLabel lbEmailAddress = new JLabel("Email Address: " ); JLabel lbHomeNumber = new JLabel("Home Phone No.: " ); JLabel lbFaxNumber = new JLabel("Fax No.: " ); // Define combo boxes in third screen (insert pane) JComboBox cbName1 = new JComboBox(); JComboBox cbName2 = new JComboBox(); JComboBox cbPersonId1 = new JComboBox(); JComboBox cbPersonId2 = new JComboBox(); // Inquiry fields on first screen (inquiry pane) JTextField tfFirstName1 = new JTextField("",30); JTextField tfLastName1 = new JTextField("",30); JTextField tfAddress1 = new JTextField("",30); JTextField tfCity1 = new JTextField("",15); JTextField tfState1 = new JTextField("",15); JTextField tfPostcode1 = new JTextField("",30); JTextField tfCountry1 = new JTextField("",15 ); JTextField tfEmailAddress1 = new JTextField("",30); JTextField tfHomeNumber1 = new JTextField("",15); JTextField tfFaxNumber1 = new JTextField("",15 ); // Input fields on second screen (update/delete pane) JTextField tfFirstName2 = new JTextField("",30); JTextField tfLastName2 = new JTextField("",30); JTextField tfAddress2 = new JTextField("",30); JTextField tfCity2 = new JTextField("",15); JTextField tfState2 = new JTextField("",15); JTextField tfPostcode2 = new JTextField("",30); JTextField tfCountry2 = new JTextField("",15); JTextField tfEmailAddress2 = new JTextField("",30); JTextField tfHomeNumber2 = new JTextField("",15); JTextField tfFaxNumber2 = new JTextField("",15); // Input fields on third screen (inset details pane) JTextField tfFirstName3 = new JTextField("",30); JTextField tfLastName3 = new JTextField("",30); JTextField tfAddress3 = new JTextField("",30); JTextField tfCity3 = new JTextField("",15); JTextField tfState3 = new JTextField("",15); JTextField tfPostcode3 = new JTextField("",30); JTextField tfCountry3 = new JTextField("",15); JTextField tfEmailAddress3 = new JTextField("",30); JTextField tfHomeNumber3 = new JTextField("",15); JTextField tfFaxNumber3 = new JTextField("",15); // Setup constraints and type of layout GridBagConstraints constraints = new GridBagConstraints(); GridBagConstraints constraints1 = new GridBagConstraints(); GridBagConstraints constraints2 = new GridBagConstraints(); GridBagConstraints constraints3 = new GridBagConstraints(); GridBagLayout layout = new GridBagLayout (); public andy() { showPane1(); showPane2(); // showPane3(); cntr.add(tpane, "Center"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(900,385); setLocation(100,100); setVisible(true); } // Setup screen 1(inquiry pane) including labels, input fields, comboboxes. // Table PERSONS is read to list inquiry parameters. void showPane1() { panel1 = new JPanel(); cbpanel1 = new JPanel(); // set screen border panel1.setBorder(BorderFactory.createTitledBorder (BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab1, panel1); // setup layout as GridBagLayout constraints1.insets = new Insets(2,2,2,2); panel1.setLayout (layout); cbpanel1.setLayout (layout); // setup Name combobox label lbSelectName.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; layout.setConstraints(lbSelectName, constraints1); panel1.add(lbSelectName); // setup Name combobox as search key cbName1.setFont(labelFont); constraints1.ipady = 10; constraints1.gridwidth = constraints1.REMAINDER; constraints1.anchor = GridBagConstraints.WEST; constraints1.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(cbName1, constraints1); panel1.add(cbName1); // setup search combobox (Name and corresponding key) cbName1.addItem ("Choose one:"); cbPersonId1.addItem("0"); // setup First Name label in display area lbFirstName.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.fill = GridBagConstraints.NONE; constraints1.gridwidth = 1; layout.setConstraints(lbFirstName, constraints1); panel1.add(lbFirstName); // setup First Name input field in display area tfFirstName1.setFont(labelFont); tfFirstName1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFirstName1, constraints1); panel1.add(tfFirstName1); // setup Last Name label in display area lbLastName.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = constraints1.RELATIVE; layout.setConstraints(lbLastName, constraints1); panel1.add(lbLastName); // setup Last Name input field in display area tfLastName1.setFont(labelFont); tfLastName1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; constraints1.gridwidth = constraints1.REMAINDER; layout.setConstraints(tfLastName1, constraints1); panel1.add(tfLastName1); // setup Address label in display area lbAddress.setFont(labelFont); constraints1.gridwidth = 1; //constraints1.RELATIVE; constraints1.anchor = GridBagConstraints.EAST; layout.setConstraints(lbAddress, constraints1); panel1.add(lbAddress); // setup Address input field in display area tfAddress1.setFont(labelFont); tfAddress1.setEditable(false); constraints1.gridwidth = constraints1.REMAINDER; constraints1.anchor = GridBagConstraints.WEST; /** * These next two lines and the line marked below == one option */ constraints1.weightx = 1.0; constraints1.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfAddress1, constraints1); panel1.add(tfAddress1); // setup City label in display area lbCity.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = 1; /** * Keep or comment-out/remove this line with the two marked above */ constraints1.fill = GridBagConstraints.NONE; layout.setConstraints(lbCity, constraints1); panel1.add(lbCity); // setup City input field in display area tfCity1.setFont(labelFont); tfCity1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCity1, constraints1); panel1.add(tfCity1); // setup State label in display area lbState.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = constraints1.RELATIVE; layout.setConstraints(lbState, constraints1); panel1.add(lbState); // setup State input field in display area tfState1.setFont(labelFont); tfState1.setEnabled(false); constraints1.anchor = GridBagConstraints.WEST; constraints1.gridwidth = constraints1.REMAINDER; layout.setConstraints(tfState1, constraints1); panel1.add(tfState1); // setup Postcode label in display area lbPostcode.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = 1; layout.setConstraints(lbPostcode, constraints1); panel1.add(lbPostcode); // setup Address input field in display area tfPostcode1.setFont(labelFont); tfPostcode1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfPostcode1, constraints1); panel1.add(tfPostcode1); // setup Country label in display area lbCountry.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = constraints1.RELATIVE; layout.setConstraints(lbCountry, constraints1); panel1.add(lbCountry); // setup Country input field in display area tfCountry1.setFont(labelFont); tfCountry1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; constraints1.gridwidth = constraints1.REMAINDER; layout.setConstraints(tfCountry1, constraints1); panel1.add(tfCountry1); // setup Email Address label in display area lbEmailAddress = new JLabel ("Email Address:"); lbEmailAddress.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = 1; layout.setConstraints(lbEmailAddress, constraints1); panel1.add(lbEmailAddress); // setup Email Address input field in display area tfEmailAddress1.setFont(labelFont); constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfEmailAddress1, constraints1); panel1.add(tfEmailAddress1); // setup Home Phone Number label in display area lbHomeNumber.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = constraints1.RELATIVE; layout.setConstraints(lbHomeNumber, constraints1); panel1.add(lbHomeNumber); // setup Home Phone Number input field in display area tfHomeNumber1.setFont(labelFont); tfHomeNumber1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; constraints1.gridwidth = constraints1.REMAINDER; layout.setConstraints(tfHomeNumber1, constraints1); panel1.add(tfHomeNumber1); // setup Fax Number label in display area lbFaxNumber.setFont(labelFont); constraints1.anchor = GridBagConstraints.EAST; constraints1.gridwidth = 1;//constraints1.RELATIVE; layout.setConstraints(lbFaxNumber, constraints1); panel1.add(lbFaxNumber); // setup Fax Number input field in display area tfFaxNumber1.setFont(labelFont); tfFaxNumber1.setEditable(false); constraints1.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFaxNumber1, constraints1); panel1.add(tfFaxNumber1); // indicate inquiry pane// //pane_number = 1; // read table get the list of names in CB search key// //accessDBInit(); // define listener after adding items to CB to avoid triggering it // cbName1.addItemListener(new ComboBoxHandler()); } //--------------------End showPane1()------------------------------------------->>> //--------------------Start showPane2()----------------------------------------->>> void showPane2() { panel2 = new JPanel(); cbpanel2 = new JPanel(); // set screen border panel2.setBorder(BorderFactory.createTitledBorder (BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab2, panel2); // setup layout as GridBagLayout constraints2.insets = new Insets(2,2,2,2); panel2.setLayout (layout); cbpanel2.setLayout (layout); // setup Name combobox label lbSelectName = new JLabel("Search Name: "); lbSelectName.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; layout.setConstraints(lbSelectName, constraints2); panel2.add(lbSelectName); // setup Name combobox as search key cbName2 = new JComboBox(); cbName2.setFont(labelFont); constraints2.ipady = 10; constraints2.gridwidth = constraints1.REMAINDER; constraints2.anchor = GridBagConstraints.WEST; constraints2.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(cbName1, constraints2); panel2.add(cbName1); // setup search combobox (Name and corresponding key) cbName2.addItem ("Choose one:"); cbPersonId2.addItem("0"); // setup First Name label in display area lbFirstName = new JLabel("First Name: "); lbFirstName.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.fill = GridBagConstraints.NONE; constraints2.gridwidth = 1; layout.setConstraints(lbFirstName, constraints2); panel2.add(lbFirstName); // setup First Name input field in display area tfFirstName2.setFont(labelFont); tfFirstName2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFirstName2, constraints2); panel2.add(tfFirstName2); // setup Last Name label in display area lbLastName = new JLabel("Last Name: "); lbLastName.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = constraints2.RELATIVE; layout.setConstraints(lbLastName, constraints2); panel2.add(lbLastName); // setup Last Name input field in display area tfLastName2.setFont(labelFont); tfLastName2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; constraints2.gridwidth = constraints2.REMAINDER; layout.setConstraints(tfLastName2, constraints2); panel1.add(tfLastName2); // setup Address label in display area lbAddress = new JLabel("Address : "); lbAddress.setFont(labelFont); constraints2.gridwidth = 1; //constraints2.RELATIVE; constraints2.anchor = GridBagConstraints.EAST; layout.setConstraints(lbAddress, constraints2); panel2.add(lbAddress); // setup Address input field in display area tfAddress2.setFont(labelFont); tfAddress2.setEditable(true); constraints2.gridwidth = constraints2.REMAINDER; constraints2.anchor = GridBagConstraints.WEST; // * These next two lines and the line marked below == one option constraints2.weightx = 1.0; constraints2.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfAddress2, constraints2); panel2.add(tfAddress2); // setup City label in display area lbCity = new JLabel("City : "); lbCity.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = 1; // * Keep or comment-out/remove this line with the two marked above constraints2.fill = GridBagConstraints.NONE; layout.setConstraints(lbCity, constraints2); panel2.add(lbCity); // setup City input field in display area tfCity2.setFont(labelFont); tfCity2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCity2, constraints2); panel2.add(tfCity2); // setup State label in display area lbState = new JLabel("State : "); lbState.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = constraints2.RELATIVE; layout.setConstraints(lbState, constraints2); panel2.add(lbState); // setup State input field in display area tfState2.setFont(labelFont); tfState2.setEnabled(true); constraints2.anchor = GridBagConstraints.WEST; constraints2.gridwidth = constraints2.REMAINDER; layout.setConstraints(tfState2, constraints2); panel2.add(tfState2); // setup Postcode label in display area lbPostcode = new JLabel("Postcode : "); lbPostcode.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = 1; layout.setConstraints(lbPostcode, constraints2); panel2.add(lbPostcode); // setup Address input field in display area tfPostcode2.setFont(labelFont); tfPostcode2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfPostcode2, constraints2); panel2.add(tfPostcode2); // setup Country label in display area lbCountry = new JLabel("Country : "); lbCountry.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = constraints2.RELATIVE; layout.setConstraints(lbCountry, constraints2); panel2.add(lbCountry); // setup Country input field in display area tfCountry2.setFont(labelFont); tfCountry2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; constraints2.gridwidth = constraints2.REMAINDER; layout.setConstraints(tfCountry2, constraints2); panel2.add(tfCountry2); // setup Email Address label in display area lbEmailAddress = new JLabel ("Email Address:"); lbEmailAddress.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = 1; layout.setConstraints(lbEmailAddress, constraints2); panel2.add(lbEmailAddress); // setup Email Address input field in display area tfEmailAddress2.setFont(labelFont); constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfEmailAddress2, constraints2); panel2.add(tfEmailAddress2); // setup Home Phone Number label in display area lbHomeNumber = new JLabel("HomeNumber .: "); lbHomeNumber.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = constraints2.RELATIVE; layout.setConstraints(lbHomeNumber, constraints2); panel2.add(lbHomeNumber); // setup Home Phone Number input field in display area tfHomeNumber2.setFont(labelFont); tfHomeNumber2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; constraints2.gridwidth = constraints2.REMAINDER; layout.setConstraints(tfHomeNumber2, constraints2); panel2.add(tfHomeNumber2); // setup Fax Number label in display area lbFaxNumber = new JLabel("lbFaxNumber .: "); lbFaxNumber.setFont(labelFont); constraints2.anchor = GridBagConstraints.EAST; constraints2.gridwidth = 1;//constraints2.RELATIVE; layout.setConstraints(lbFaxNumber, constraints2); panel2.add(lbFaxNumber); // setup Fax Number input field in display area tfFaxNumber2.setFont(labelFont); tfFaxNumber2.setEditable(true); constraints2.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFaxNumber2, constraints2); panel2.add(tfFaxNumber2); } //-----------------------------End showpane2()---------------------------------->> //--------------------Start showPane3()----------------------------------------->>> void showPane3() { panel3 = new JPanel(); // cbpanel3 = new JPanel(); // set screen border panel3.setBorder(BorderFactory.createTitledBorder (BorderFactory.createEtchedBorder(),"")); // add tabbedpane to panel tpane.addTab(tab3, panel3); // setup layout as GridBagLayout constraints3.insets = new Insets(2,2,2,2); panel3.setLayout (layout); // cbpanel3.setLayout (layout); /** // setup Name combobox label lbSelectName = new JLabel("Search Name: "); lbSelectName.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; layout.setConstraints(lbSelectName, constraints3); panel3.add(lbSelectName); // setup Name combobox as search key cbName3 = new JComboBox(); cbName3.setFont(labelFont); constraints3.ipady = 10; constraints3.gridwidth = constraints1.REMAINDER; constraints3.anchor = GridBagConstraints.WEST; constraints3.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(cbName1, constraints3); panel3.add(cbName1); // setup search combobox (Name and corresponding key) cbName3.addItem ("Choose one:"); cbPersonId3.addItem("0"); **/ // setup First Name label in display area lbFirstName = new JLabel("First Name: "); lbFirstName.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.fill = GridBagConstraints.NONE; constraints3.gridwidth = 1; layout.setConstraints(lbFirstName, constraints3); panel3.add(lbFirstName); // setup First Name input field in display area tfFirstName3.setFont(labelFont); tfFirstName3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFirstName3, constraints3); panel3.add(tfFirstName3); // setup Last Name label in display area lbLastName = new JLabel("Last Name: "); lbLastName.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = constraints3.RELATIVE; layout.setConstraints(lbLastName, constraints3); panel3.add(lbLastName); // setup Last Name input field in display area tfLastName3.setFont(labelFont); tfLastName3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; constraints3.gridwidth = constraints3.REMAINDER; layout.setConstraints(tfLastName3, constraints3); panel1.add(tfLastName3); // setup Address label in display area lbAddress = new JLabel("Address : "); lbAddress.setFont(labelFont); constraints3.gridwidth = 1; //constraints3.RELATIVE; constraints3.anchor = GridBagConstraints.EAST; layout.setConstraints(lbAddress, constraints3); panel3.add(lbAddress); // setup Address input field in display area tfAddress3.setFont(labelFont); tfAddress3.setEditable(true); constraints3.gridwidth = constraints3.REMAINDER; constraints3.anchor = GridBagConstraints.WEST; // * These next two lines and the line marked below == one option constraints3.weightx = 1.0; constraints3.fill = GridBagConstraints.HORIZONTAL; layout.setConstraints(tfAddress3, constraints3); panel3.add(tfAddress3); // setup City label in display area lbCity = new JLabel("City : "); lbCity.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = 1; // * Keep or comment-out/remove this line with the two marked above constraints3.fill = GridBagConstraints.NONE; layout.setConstraints(lbCity, constraints3); panel3.add(lbCity); // setup City input field in display area tfCity3.setFont(labelFont); tfCity3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfCity3, constraints3); panel3.add(tfCity3); // setup State label in display area lbState = new JLabel("State : "); lbState.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = constraints3.RELATIVE; layout.setConstraints(lbState, constraints3); panel3.add(lbState); // setup State input field in display area tfState3.setFont(labelFont); tfState3.setEnabled(true); constraints3.anchor = GridBagConstraints.WEST; constraints3.gridwidth = constraints3.REMAINDER; layout.setConstraints(tfState3, constraints3); panel3.add(tfState3); // setup Postcode label in display area lbPostcode = new JLabel("Postcode : "); lbPostcode.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = 1; layout.setConstraints(lbPostcode, constraints3); panel3.add(lbPostcode); // setup Address input field in display area tfPostcode3.setFont(labelFont); tfPostcode3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfPostcode3, constraints3); panel3.add(tfPostcode3); // setup Country label in display area lbCountry = new JLabel("Country : "); lbCountry.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = constraints3.RELATIVE; layout.setConstraints(lbCountry, constraints3); panel3.add(lbCountry); // setup Country input field in display area tfCountry3.setFont(labelFont); tfCountry3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; constraints3.gridwidth = constraints3.REMAINDER; layout.setConstraints(tfCountry3, constraints3); panel3.add(tfCountry3); // setup Email Address label in display area lbEmailAddress = new JLabel ("Email Address:"); lbEmailAddress.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = 1; layout.setConstraints(lbEmailAddress, constraints3); panel3.add(lbEmailAddress); // setup Email Address input field in display area tfEmailAddress3.setFont(labelFont); constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfEmailAddress3, constraints3); panel3.add(tfEmailAddress3); // setup Home Phone Number label in display area lbHomeNumber = new JLabel("HomeNumber .: "); lbHomeNumber.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = constraints3.RELATIVE; layout.setConstraints(lbHomeNumber, constraints3); panel3.add(lbHomeNumber); // setup Home Phone Number input field in display area tfHomeNumber3.setFont(labelFont); tfHomeNumber3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; constraints3.gridwidth = constraints3.REMAINDER; layout.setConstraints(tfHomeNumber3, constraints3); panel3.add(tfHomeNumber3); // setup Fax Number label in display area lbFaxNumber = new JLabel("lbFaxNumber .: "); lbFaxNumber.setFont(labelFont); constraints3.anchor = GridBagConstraints.EAST; constraints3.gridwidth = 1;//constraints3.RELATIVE; layout.setConstraints(lbFaxNumber, constraints3); panel3.add(lbFaxNumber); // setup Fax Number input field in display area tfFaxNumber3.setFont(labelFont); tfFaxNumber3.setEditable(true); constraints3.anchor = GridBagConstraints.WEST; layout.setConstraints(tfFaxNumber3, constraints3); panel3.add(tfFaxNumber3); } //-----------------------------End showpane3()---------------------------------->> public static void main(String[] args) { new andy(); } }
|
 |
Paul Stevens
Ranch Hand
Joined: May 17, 2001
Posts: 2823
|
|
Your problem is that in your show panel 2 and 3 methods you place items on panel1. Cut and paste can be a terrible thing. I made a couple of changes just to your panel1 to show another way of doing the layout. Note the use of code tags.
|
 |
 |
|
|
subject: Problem with gridbaglayout in JPanel
|
|
|
|