Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Putting a JTable on a Tabbed Pane

807598Feb 20 2006 — edited Feb 22 2006
I am trying to put a JTable with a table model on a tabbed pane. On a regular pane, the table shows fine. When I try to put it on a tabbed pane it does not display the table. In the fetch method is where the new table is suppose to display. On a regular pane I just put add(scroller, BorderLayout.CENTER) and it works fine. Sorry for the length.
import javax.swing.JInternalFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.TableColumn;

import java.awt.event.*;
import java.awt.*;

public class AddressBookInternalFrame extends JInternalFrame {
        PhoneTableModel mtm = new PhoneTableModel();
	JTabbedPane tabbedPane = new JTabbedPane();
	JPanel general = new JPanel();
	JPanel email = new JPanel();
	JPanel phones = new JPanel();
        JScrollPane scroller = new JScrollPane();
        JPanel p = new JPanel(new BorderLayout());
    	FlowLayout left = new FlowLayout(FlowLayout.LEFT);

	JPanel topPanel = new JPanel();

	JLabel addressNumberLabel = new JLabel("Address Number");
	JTextField addressNumberField = new JTextField(20);
	JLabel addressNameLabel = new JLabel("Name");
	JTextField addressNameField = new JTextField(25);
	JLabel addressLine1Label = new JLabel("Address Line 1");
	JTextField addressLine1Field = new JTextField(25);
	JLabel addressLine2Label = new JLabel("Address Line 2");
	JTextField addressLine2Field = new JTextField(25);
	JLabel cityLabel = new JLabel("City");
	JTextField cityField = new JTextField(25);
	JLabel stateLabel = new JLabel("State");
	JTextField stateField = new JTextField(5);
	JLabel zipLabel = new JLabel("Zip Code");
	JTextField zipField = new JTextField(10);
	JLabel emailLabel = new JLabel("Email");
	JTextField emailField = new JTextField(25);
	JLabel webAddressLabel = new JLabel("Web Addresss");
	JTextField webAddressField = new JTextField(25);
        JPanel statusPane = new JPanel(new FlowLayout());
        JTextField statusField = new JTextField(45);
        JTable table = new JTable();

        String mode;
        String status;
        
	JButton lookup = new JButton("Lookup");
	JButton save = new JButton("Save");
	JButton close = new JButton("Close");
	JButton add = new JButton("Add");
        JButton delete = new JButton("Delete");

	AddressBook addressBook = new AddressBook();

	WindowStatus windowStatus = new WindowStatus();

	NextNumbers nn = new NextNumbers();

    	public AddressBookInternalFrame() {
        	super("Address Book Frame", 
              		true, //resizable
              		false, //closable
              		true, //maximizable
              		true);//iconifiable

                initializeFields();
                lockFields();
                mode = "";
                
                mtm = new PhoneTableModel();
                table = new JTable(mtm);
                scroller = new JScrollPane(table);
                
		topPanel.setLayout(left);
		topPanel.add(addressNumberLabel);
		topPanel.add(addressNumberField);
		topPanel.add(lookup);
		topPanel.add(save);
		topPanel.add(add);

                general.setLayout(new GridLayout(6,2));
		general.add(addressNameLabel);
		general.add(addressNameField);
		general.add(addressLine1Label);
		general.add(addressLine1Field);
                general.add(addressLine2Label);
		general.add(addressLine2Field);
                general.add(cityLabel);
		general.add(cityField);
                general.add(stateLabel);
		general.add(stateField);
                general.add(zipLabel);
		general.add(zipField);

                email.setLayout(new GridLayout(6,2));
		email.add(emailLabel);
		email.add(emailField);
		email.add(webAddressLabel);
		email.add(webAddressField);
                
		phones.add(scroller);

		tabbedPane.addTab("Address Info", general);
		tabbedPane.addTab("Email", email);
		tabbedPane.addTab("Phones", phones);
                
                save.setEnabled(false);
                statusField.setEditable(false);
                
                statusPane.setLayout(left);
                statusPane.add(statusField);
                statusPane.add(close);
		p.add(topPanel, BorderLayout.NORTH);
		p.add(tabbedPane, BorderLayout.CENTER);
		p.add(statusPane, BorderLayout.SOUTH);
                
                setContentPane(p);

        	lookup.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
                            statusField.setText("");
                            if (!(addressNumberField.getText()).equals("")) {
                                String queryString = "SELECT addressNumber, type AS Type, areaCode AS " +
                                        "Area_Code, phone AS Phone, ext AS EXT FROM phones WHERE " +
                                        "addressNumber = " + addressNumberField.getText();
				addressBook.getAddress(Integer.parseInt((addressNumberField.getText())));
                                initializeFields();
				addressNumberField.setText(Integer.toString(addressBook.getAddressNumber()));
                                addressNameField.setText(addressBook.getAddressName());
				addressLine1Field.setText(addressBook.getAddressLine1());
				addressLine2Field.setText(addressBook.getAddressLine2());
				cityField.setText(addressBook.getCity());
				stateField.setText(addressBook.getState());
				zipField.setText(addressBook.getZip());
				emailField.setText(addressBook.getEmail());
				webAddressField.setText(addressBook.getWebAddress());
                                
                                fetch(queryString);
                                if (!(addressNumberField.getText()).equals(""))
			            save.setEnabled(true);
                                    enableFields();
                            }
                        }
		});    

        	add.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
                            statusField.setText("");
				//get next number
//				item.AddItem(nn.GetNextNumber("ITEM"), itemField.getText(), itemDescriptionField.getText(),
//					categoryCode1Field.getText(), categoryCode2Field.getText(),
//					categoryCode3Field.getText(), categoryCode4Field.getText(),
//					categoryCode5Field.getText(), Integer.parseInt(supplierField.getText()),
//					Double.parseDouble(itemDiscountField.getText()));
//				System.out.println("Saved item");
                            initializeFields();
                            mode = "add";
                            save.setEnabled(true);
                            enableFields();
			}
		});

        	save.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//get next number
                            statusField.setText("");
                            System.out.println(addressNumberField.getText());
                            if(mode.equals("add") && !(addressNumberField.getText()).equals("")){
                                status = addressBook.addAddress(nn.GetNextNumber("ADDR"), addressNameField.getText(), addressLine1Field.getText(),
					addressLine2Field.getText(), cityField.getText(),
					stateField.getText(), zipField.getText(),
					emailField.getText(), webAddressField.getText());
                                statusField.setText(status);
                                nn.IncrementNextNumber("ADDR");
                                mode = "";
                            }
                            else if(!(addressNumberField.getText()).equals("")) {
				status = addressBook.updateAddress(Integer.parseInt(addressNumberField.getText()), 
                                        addressNameField.getText(), addressLine1Field.getText(), addressLine2Field.getText(),
					cityField.getText(), stateField.getText(),
					zipField.getText(), emailField.getText(),
					webAddressField.getText());
                                statusField.setText(status);
                                mode = "";
                            }
                            initializeFields();
                            lockFields();
                            save.setEnabled(false);
			}
		});

        	close.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				windowStatus.itemOpen = false;
				setVisible(false);
				dispose();
			}
		});

        	setLocation(75,75);
                pack();
      }
        
      public void initializeFields() {
          addressNumberField.setText("");
          addressNameField.setText("");
          addressLine1Field.setText("");
          addressLine2Field.setText("");
          cityField.setText("");
          stateField.setText("");
          zipField.setText("");
          emailField.setText("");
          webAddressField.setText("0");
      }
      
      public void lockFields() {
          addressNameField.setEditable(false);
          addressLine1Field.setEditable(false);
          addressLine2Field.setEditable(false);
          cityField.setEditable(false);
          stateField.setEditable(false);
          zipField.setEditable(false);
          emailField.setEditable(false);
          webAddressField.setEditable(false);
      }
      
      public void enableFields() {
          addressNameField.setEditable(true);
          addressLine1Field.setEditable(true);
          addressLine2Field.setEditable(true);
          cityField.setEditable(true);
          stateField.setEditable(true);
          zipField.setEditable(true);
          emailField.setEditable(true);
          webAddressField.setEditable(true);
      }
      
      public void fetch(String queryString) {
        System.out.println("In fetch");
        if (scroller != null) {
            System.out.println("scoller was not null");
            remove(scroller);
        }
        mtm = new PhoneTableModel();
       mtm.executeQuery(queryString);
       ItemPriceTableModel
        table = new JTable(mtm);
        if (mtm.getRowCount() > 0) {
            save.setEnabled(true);
            add.setEnabled(true);
            delete.setEnabled(true);
        }
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        
	table.removeColumn(table.getColumnModel().getColumn(0));
        table.setDefaultRenderer(Double.class, new TwoDecimalRenderer());
        // Override default column widths
	TableColumn col = table.getColumnModel().getColumn(0);
	col.setPreferredWidth(75);

	col = table.getColumnModel().getColumn(1);
	col.setPreferredWidth(100);

	col = table.getColumnModel().getColumn(2);
	col.setPreferredWidth(100);
 
        scroller = new JScrollPane(table);
         phones.add(scroller, BorderLayout.CENTER);
        validate();
        statusField.setText("Records fetched: " + mtm.getRowCount());
    }
}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 22 2006
Added on Feb 20 2006
7 comments
277 views