I need to make a GUI using Gridbag layout. below is my code which uses borderlay
ID: 3545172 • Letter: I
Question
I need to make a GUI using Gridbag layout. below is my code which uses borderlayout with JTabbed Pane and i have the code working but the window and all three panels are messed up so i need to use gridbaglayout please help. there are two .java files. second one compiles the code. 1st .java: AFrame.java and 2nd: JTabbedPaneDemo
// tabbedpane layout
import java.awt.BorderLayout;
import javax.swing.JTabbedPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JList;
import javax.swing.JButton;
public class AFrame extends JFrame
{
//set up GUI
public AFrame()
{
super("Bank Account");
JTabbedPane tabbedPane = new JTabbedPane(); // create the panel 1
// set up Panel 1 - Deposit
JLabel label1 = new JLabel ("Deposit To:");
JLabel label2 = new JLabel ("Enter Amount:");
JPanel panel1 = new JPanel();
String[]accountTypes = {"Select Account type","Checking Account","Savings Account"}; // selecting account type here
JComboBox comboBox = new JComboBox(accountTypes);
JTextField textField1 = new JTextField("");
panel1.setLayout( new BorderLayout() );
panel1.add( comboBox, BorderLayout.CENTER);
panel1.add( textField1,BorderLayout.CENTER);
panel1.add( new JButton("View Balance"), BorderLayout.SOUTH);
panel1.add(label1, BorderLayout.NORTH);
panel1.add(label2, BorderLayout.WEST);
tabbedPane.addTab("Deposit",null,panel1,"First Panel");
//set up panel 2- withdraw
JLabel label3 = new JLabel ("WithDraw From:");
JLabel label4 = new JLabel ("Enter Amount:");
JPanel panel2 = new JPanel ();
panel2.setLayout( new BorderLayout() );
panel2.add( comboBox, BorderLayout.EAST);
panel2.add( textField1,BorderLayout.CENTER);
panel2.add( new JButton("View Balance"), BorderLayout.SOUTH);
panel2.add(label3, BorderLayout.NORTH);
panel2.add(label4, BorderLayout.WEST);
tabbedPane.addTab("Withdraw",null,panel2,"Second Panel");
//set up panel 3- Transfer
JLabel label5 = new JLabel ("Transfer From:");
JLabel label6 = new JLabel ("Transfer To:");
JLabel label7 = new JLabel ("Enter Amount:");
JPanel panel3 = new JPanel ();
panel3.setLayout( new BorderLayout() );
panel3.add( comboBox, BorderLayout.EAST);
panel3.add( textField1,BorderLayout.CENTER);
panel3.add( new JButton("View Balance"), BorderLayout.SOUTH);
panel3.add(label5, BorderLayout.WEST);
panel3.add(label6, BorderLayout.CENTER);
panel3.add(label7, BorderLayout.CENTER);
tabbedPane.addTab("Transfer",null,panel3,"Third Panel");
add(tabbedPane); // add JTabbedPane to frame
}// End JTabbed frame constructor
}//end class
for this code to compile here is my second .java file
import javax.swing.JFrame;
public class JTabbedPaneDemo
{
public static void main(String[]args)
{
AFrame aFrame = new AFrame();
aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
aFrame.setSize(680,420); // frame size
aFrame.setVisible(true);
}
}
Explanation / Answer
HERE IS THE COMPLETE AND CORRECT CODE