Java GUI button wont initialize - java

So i'm creating a program that sort of acts like a calculator for a certain item for sales. I have a calculate button but pressing the button won't initialize the code within it. I am using Swing designer for the gui. Here's the code with the button
JButton btnNewButton = new JButton("Calculate Total");
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 43));
btnNewButton.setBounds(37, 1113, 330, 77);
frame.getContentPane().add(btnNewButton);
if(btnNewButton.getModel().isPressed())
{
// Sets value for # of gloves per type
LA = Integer.parseInt(textField_1.getText());
LB = Integer.parseInt(textField_8.getText());
SA = Integer.parseInt(textField_12.getText());
SB = Integer.parseInt(textField_13.getText());
total = LA + LB + SA + SB;
// Sets value for percentage of gloves compared to total
percLA = LA / total;
percLB = LB / total;
percSA = SA / total;
percSB = SB / total;
double percTotal = percLA + percLB + percSA + percSB;
//21;
// Sets value for total # of gloves
textField_22.setText(Double.toString(total));
// Sets value for percentage
textField_2.setText(Double.toString(percLA));
textField_7.setText(Double.toString(percLB));
textField_14.setText(Double.toString(percSA));
textField_15.setText(Double.toString(percSB));
textField_21.setText(Double.toString(percTotal));
// Sets value for cost per pair
costLA = Integer.parseInt(textField_3.getText());
costLB = Integer.parseInt(textField_6.getText());
costSA = Integer.parseInt(textField_16.getText());
costSB = Integer.parseInt(textField_17.getText());
}
And here's the full code if needed
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.Box;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JTextArea;
import javax.swing.JButton;
public class Program {
private JFrame frame;
private JTextField textField_1;
private JTextField textField_2;
private JTextField textField_3;
private JTextField textField_4;
private JTextField textField_5;
private JTextField textField_6;
private JTextField textField_7;
private JTextField textField_8;
private JTextField textField_12;
private JTextField textField_13;
private JTextField textField_14;
private JTextField textField_15;
private JTextField textField_16;
private JTextField textField_17;
private JTextField textField_18;
private JTextField textField_19;
private JTextField textField_20;
private JTextField textField_21;
private JTextField textField_22;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Program window = new Program();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Program() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 1109, 1400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
// Total # of pairs per glove
double LA = 0;
double LB = 0;
double SA = 0;
double SB = 0;
double total = 0;
// Percentage of gloves compared to total
double percLA = 0;
double percLB = 0;
double percSA = 0;
double percSB = 0;
// Cost per glove type
double costLA = 0;
double costLB = 0;
double costSA = 0;
double costSB = 0;
textField_1 = new JTextField();
textField_1.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_1.setColumns(10);
textField_1.setBounds(231, 74, 200, 64);
frame.getContentPane().add(textField_1);
textField_2 = new JTextField();
textField_2.setEditable(false);
textField_2.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_2.setColumns(10);
textField_2.setBounds(440, 74, 200, 64);
frame.getContentPane().add(textField_2);
textField_3 = new JTextField();
textField_3.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_3.setColumns(10);
textField_3.setBounds(650, 74, 200, 64);
frame.getContentPane().add(textField_3);
textField_4 = new JTextField();
textField_4.setEditable(false);
textField_4.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_4.setColumns(10);
textField_4.setBounds(860, 74, 200, 64);
frame.getContentPane().add(textField_4);
textField_5 = new JTextField();
textField_5.setEditable(false);
textField_5.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_5.setColumns(10);
textField_5.setBounds(860, 147, 200, 64);
frame.getContentPane().add(textField_5);
textField_6 = new JTextField();
textField_6.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_6.setColumns(10);
textField_6.setBounds(650, 147, 200, 64);
frame.getContentPane().add(textField_6);
textField_7 = new JTextField();
textField_7.setEditable(false);
textField_7.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_7.setColumns(10);
textField_7.setBounds(440, 147, 200, 64);
frame.getContentPane().add(textField_7);
textField_8 = new JTextField();
textField_8.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_8.setColumns(10);
textField_8.setBounds(231, 147, 200, 64);
frame.getContentPane().add(textField_8);
textField_12 = new JTextField();
textField_12.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_12.setColumns(10);
textField_12.setBounds(231, 219, 200, 64);
frame.getContentPane().add(textField_12);
textField_13 = new JTextField();
textField_13.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_13.setColumns(10);
textField_13.setBounds(231, 293, 200, 64);
frame.getContentPane().add(textField_13);
textField_14 = new JTextField();
textField_14.setEditable(false);
textField_14.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_14.setColumns(10);
textField_14.setBounds(440, 219, 200, 64);
frame.getContentPane().add(textField_14);
textField_15 = new JTextField();
textField_15.setEditable(false);
textField_15.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_15.setColumns(10);
textField_15.setBounds(440, 293, 200, 64);
frame.getContentPane().add(textField_15);
textField_16 = new JTextField();
textField_16.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_16.setColumns(10);
textField_16.setBounds(650, 219, 200, 64);
frame.getContentPane().add(textField_16);
textField_17 = new JTextField();
textField_17.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_17.setColumns(10);
textField_17.setBounds(650, 293, 200, 64);
frame.getContentPane().add(textField_17);
textField_18 = new JTextField();
textField_18.setEditable(false);
textField_18.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_18.setColumns(10);
textField_18.setBounds(860, 219, 200, 64);
frame.getContentPane().add(textField_18);
textField_19 = new JTextField();
textField_19.setEditable(false);
textField_19.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_19.setColumns(10);
textField_19.setBounds(860, 293, 200, 64);
frame.getContentPane().add(textField_19);
textField_20 = new JTextField();
textField_20.setEditable(false);
textField_20.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_20.setColumns(10);
textField_20.setBounds(860, 386, 200, 64);
frame.getContentPane().add(textField_20);
textField_21 = new JTextField();
textField_21.setEditable(false);
textField_21.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_21.setColumns(10);
textField_21.setBounds(440, 386, 200, 64);
frame.getContentPane().add(textField_21);
textField_22 = new JTextField();
textField_22.setEditable(false);
textField_22.setFont(new Font("Tahoma", Font.PLAIN, 40));
textField_22.setColumns(10);
textField_22.setBounds(231, 386, 200, 64);
frame.getContentPane().add(textField_22);
Box horizontalBox = Box.createHorizontalBox();
horizontalBox.setBounds(213, 74, -187, 64);
frame.getContentPane().add(horizontalBox);
Box horizontalBox_1 = Box.createHorizontalBox();
horizontalBox_1.setBounds(22, 74, 200, 64);
frame.getContentPane().add(horizontalBox_1);
JLabel lblTest = new JLabel("Latex A");
lblTest.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_1.add(lblTest);
Box horizontalBox_2 = Box.createHorizontalBox();
horizontalBox_2.setBounds(22, 147, 200, 64);
frame.getContentPane().add(horizontalBox_2);
JLabel lblLatexB = new JLabel("Latex B");
lblLatexB.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_2.add(lblLatexB);
Box horizontalBox_3 = Box.createHorizontalBox();
horizontalBox_3.setBounds(22, 219, 200, 64);
frame.getContentPane().add(horizontalBox_3);
JLabel lblSyntheticA = new JLabel("Synthetic A");
lblSyntheticA.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_3.add(lblSyntheticA);
Box horizontalBox_4 = Box.createHorizontalBox();
horizontalBox_4.setBounds(22, 293, 200, 64);
frame.getContentPane().add(horizontalBox_4);
JLabel lblSyntheticB = new JLabel("Synthetic B");
lblSyntheticB.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_4.add(lblSyntheticB);
Box horizontalBox_5 = Box.createHorizontalBox();
horizontalBox_5.setBounds(231, 0, 200, 64);
frame.getContentPane().add(horizontalBox_5);
JLabel lblPairsYear = new JLabel("Pairs / Year");
lblPairsYear.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_5.add(lblPairsYear);
Box horizontalBox_6 = Box.createHorizontalBox();
horizontalBox_6.setBounds(440, 0, 200, 64);
frame.getContentPane().add(horizontalBox_6);
JLabel lblOfTotal = new JLabel("% Of Total");
lblOfTotal.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_6.add(lblOfTotal);
Box horizontalBox_7 = Box.createHorizontalBox();
horizontalBox_7.setBounds(650, 0, 200, 64);
frame.getContentPane().add(horizontalBox_7);
JLabel lblPricePerPair = new JLabel("Price Per Pair");
lblPricePerPair.setFont(new Font("Tahoma", Font.PLAIN, 33));
horizontalBox_7.add(lblPricePerPair);
Box horizontalBox_8 = Box.createHorizontalBox();
horizontalBox_8.setBounds(860, 0, 200, 64);
frame.getContentPane().add(horizontalBox_8);
JLabel lblTotalSpent = new JLabel("Total Spent");
lblTotalSpent.setFont(new Font("Tahoma", Font.PLAIN, 35));
horizontalBox_8.add(lblTotalSpent);
JSlider slider = new JSlider();
slider.setToolTipText("h");
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setFont(new Font("Tahoma", Font.PLAIN, 72));
slider.setBounds(39, 592, 1021, 88);
frame.getContentPane().add(slider);
JLabel lblAverageSalePrice = new JLabel("Average Sale Price");
lblAverageSalePrice.setFont(new Font("Tahoma", Font.PLAIN, 35));
lblAverageSalePrice.setBounds(39, 536, 384, 43);
frame.getContentPane().add(lblAverageSalePrice);
JTextArea textArea = new JTextArea();
textArea.setFont(new Font("Monospaced", Font.PLAIN, 43));
textArea.setBounds(468, 525, 172, 61);
frame.getContentPane().add(textArea);
JTextArea textArea_1 = new JTextArea();
textArea_1.setFont(new Font("Monospaced", Font.PLAIN, 43));
textArea_1.setBounds(468, 714, 172, 61);
frame.getContentPane().add(textArea_1);
JLabel lblTotalNumberOf = new JLabel("Total Number Of Pairs");
lblTotalNumberOf.setFont(new Font("Tahoma", Font.PLAIN, 35));
lblTotalNumberOf.setBounds(39, 725, 384, 43);
frame.getContentPane().add(lblTotalNumberOf);
JSlider slider_1 = new JSlider();
slider_1.setToolTipText("h");
slider_1.setPaintTicks(true);
slider_1.setPaintLabels(true);
slider_1.setFont(new Font("Tahoma", Font.PLAIN, 72));
slider_1.setBounds(39, 783, 1021, 88);
frame.getContentPane().add(slider_1);
JTextArea textArea_2 = new JTextArea();
textArea_2.setFont(new Font("Monospaced", Font.PLAIN, 43));
textArea_2.setBounds(468, 895, 172, 61);
frame.getContentPane().add(textArea_2);
JLabel lblPriceReduction = new JLabel("Price Reduction");
lblPriceReduction.setFont(new Font("Tahoma", Font.PLAIN, 35));
lblPriceReduction.setBounds(39, 917, 384, 43);
frame.getContentPane().add(lblPriceReduction);
JSlider slider_2 = new JSlider();
slider_2.setToolTipText("h");
slider_2.setPaintTicks(true);
slider_2.setPaintLabels(true);
slider_2.setFont(new Font("Tahoma", Font.PLAIN, 72));
slider_2.setBounds(39, 968, 1021, 88);
frame.getContentPane().add(slider_2);
JTextArea textArea_3 = new JTextArea();
textArea_3.setEditable(false);
textArea_3.setFont(new Font("Monospaced", Font.PLAIN, 43));
textArea_3.setBounds(417, 1129, 292, 61);
frame.getContentPane().add(textArea_3);
JButton btnNewButton = new JButton("Calculate Total");
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 43));
btnNewButton.setBounds(37, 1113, 330, 77);
frame.getContentPane().add(btnNewButton);
if(btnNewButton.getModel().isPressed())
{
// Sets value for # of gloves per type
LA = Integer.parseInt(textField_1.getText());
LB = Integer.parseInt(textField_8.getText());
SA = Integer.parseInt(textField_12.getText());
SB = Integer.parseInt(textField_13.getText());
total = LA + LB + SA + SB;
// Sets value for percentage of gloves compared to total
percLA = LA / total;
percLB = LB / total;
percSA = SA / total;
percSB = SB / total;
double percTotal = percLA + percLB + percSA + percSB;
//21;
// Sets value for total # of gloves
textField_22.setText(Double.toString(total));
// Sets value for percentage
textField_2.setText(Double.toString(percLA));
textField_7.setText(Double.toString(percLB));
textField_14.setText(Double.toString(percSA));
textField_15.setText(Double.toString(percSB));
textField_21.setText(Double.toString(percTotal));
// Sets value for cost per pair
costLA = Integer.parseInt(textField_3.getText());
costLB = Integer.parseInt(textField_6.getText());
costSA = Integer.parseInt(textField_16.getText());
costSB = Integer.parseInt(textField_17.getText());
}
}
}
Update : created an anonymous class for the listener but my code won't initialize for where I place the code for my button to perform. Here's the code
JTextArea textArea_2 = new JTextArea();
textArea_2.setFont(new Font("Monospaced", Font.PLAIN, 43));
textArea_2.setBounds(468, 895, 172, 61);
frame.getContentPane().add(textArea_2);
JLabel lblPriceReduction = new JLabel("Price Reduction");
lblPriceReduction.setFont(new Font("Tahoma", Font.PLAIN, 35));
lblPriceReduction.setBounds(39, 917, 384, 43);
frame.getContentPane().add(lblPriceReduction);
JSlider slider_2 = new JSlider();
slider_2.setToolTipText("h");
slider_2.setPaintTicks(true);
slider_2.setPaintLabels(true);
slider_2.setFont(new Font("Tahoma", Font.PLAIN, 72));
slider_2.setBounds(39, 968, 1021, 88);
frame.getContentPane().add(slider_2);
JTextArea textArea_3 = new JTextArea();
textArea_3.setEditable(false);
textArea_3.setFont(new Font("Monospaced", Font.PLAIN, 43));
textArea_3.setBounds(417, 1129, 292, 61);
frame.getContentPane().add(textArea_3);
JButton btnNewButton = new JButton("Calculate Total");
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 43));
btnNewButton.setBounds(37, 1113, 330, 77);
frame.getContentPane().add(btnNewButton);
btnNewButton.addActionListener(new Action());
}
static class Action implements ActionListener {
public void actionPerformed (ActionEvent e){
textArea_1.setText("This is a test");
}
}
}
However where I typed //Trying to place code here, I can't call for example textfield_3.setText();. Nothing will initialize.

You have to add an actionListener to the JButton and implement an actionPerformed method of that interface. Please, take a look at http://docs.oracle.com/javase/tutorial/uiswing/components/button.html and you will get some tips. Your code is just not attached to the button.

I'm not really sure what the real problem is, but I will recommend you to implement ActionListener in your class so you will have to overwrite the ActionPerformed method instead of just using an anonymous class.
This would be the example:
public class Programs implements ActionListener{
// When you create your button
JButton btnNewButton = new JButton("Calculate Total");
btnNewButton.setFont(new Font("Tahoma", Font.PLAIN, 43));
// This line tells the button where the actionListener will be
// handlded
btnNewButton.addActionListener(this);
//all your code...
// I will catch all the actions you send me
public void actionPerformed(ActionEvent e){
// Here goes the name of the instance, remember that.
if(e.getSource(btnNewButton)){
//code to execute when you click the button ...
}
}
}
The second option would be just adding an anonymous class, I don't recommend this is because the code can get a little dirty.
btnNewButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
// Code to execute when clicked
}
});
in this example you don't need to implement ActionListener interface, you just make an anonymous class and internally assing a method.
Good luck, if you have any question i'll be here.

Related

How to prevent duplication while creating multiple similar jButtons

I'm trying to learn about java GUI , and I can't seem but notice that there is a lot of duplication going around when trying to create multiple similar buttons. For example in this piece of code :
JButton btnAddCar = new JButton("Add Car");
btnAddCar.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddCar.setBounds(5, 5, 355, 155);
addInternalFrame.getContentPane().add(btnAddCar);
JButton btnAddHybridCar = new JButton("Add Hybrid Car");
btnAddHybridCar.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddHybridCar.setBounds(5, 165, 355, 155);
addInternalFrame.getContentPane().add(btnAddHybridCar);
JButton btnAddVan = new JButton("Add Van");
btnAddVan.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddVan.setBounds(5, 325, 355, 155);
addInternalFrame.getContentPane().add(btnAddVan);
JButton btnAddMotorcycle = new JButton("Add Motorcycle");
btnAddMotorcycle.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddMotorcycle.setBounds(5, 485, 355, 155);
addInternalFrame.getContentPane().add(btnAddMotorcycle);
JButton btnAddHybridMotorcycle = new JButton("Add Hybrid Motorcycle");
btnAddHybridMotorcycle.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddHybridMotorcycle.setBounds(5, 645, 355, 155);
addInternalFrame.getContentPane().add(btnAddHybridMotorcycle);
JButton btnAddCustomer = new JButton("Add Customer");
btnAddCustomer.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddCustomer.setBounds(365, 5, 355, 155);
addInternalFrame.getContentPane().add(btnAddCustomer);
JButton btnAddVIPCustomer = new JButton("Add VIP Customer");
btnAddVIPCustomer.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddVIPCustomer.setBounds(365, 165, 355, 155);
addInternalFrame.getContentPane().add(btnAddVIPCustomer);
JButton btnAddEmployee = new JButton("Add Employee");
btnAddEmployee.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddEmployee.setBounds(365, 325, 355, 155);
addInternalFrame.getContentPane().add(btnAddEmployee);
JButton btnAddDepartmentManager = new JButton("Add Department Manager");
btnAddDepartmentManager.setFont(new Font("Tahoma", Font.PLAIN, 20));
btnAddDepartmentManager.setBounds(365, 485, 355, 155);
addInternalFrame.getContentPane().add(btnAddDepartmentManager);
Is there a shorter, aesthetic way of writing this code?
you could try to outsource the button creation into a method like this
Note: you might also have to add addInternalFrame as a parameter
private JButton createButton(String name, int x, int y){
JButton button = new JButton(name);
button.setFont(new Font("Tahoma", Font.PLAIN, 20));
button.setBounds(x, y, 355, 155);
addInternalFrame.getContentPane().add(button);
return button;
}
and create your buttons with it
JButton btnAddCar = createButton("Add Car", 5, 5);
JButton btnAddHybridCar = createButton("Add Hybrid Car", 5, 165);

Program Terminates without running in eclipse

When I run this code ( having simple buttons and a LOGIN button with an action listener), it terminates without running and without showing screen.
I have tried System.exit(0); in main function to overcome this terminating issue but all in vain
public class HOme extends JFrame{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = (int) screenSize.getWidth();
int height = (int) screenSize.getHeight();
Color cardinal = new Color(194, 35, 38);
int w=155;
int h=50;
public HOme(String title) {
super(title);
getContentPane().setSize(width,height);
getContentPane().setBackground(Color.WHITE);
getContentPane().setLayout(null);
final JPanel panel2 = new JPanel();
panel2.setBounds(364, 33, 664, 344);
getContentPane().add(panel2);
JPanel panel3 = new JPanel();
panel3.setBackground(Color.WHITE);
panel3.setBounds(81, 382, 947, 243);
getContentPane().add(panel3);
panel3.setLayout(null);
JButton btnHome = new JButton("Home");
btnHome.setFont(new Font("Times New Roman", Font.PLAIN, 20));
btnHome.setForeground(Color.WHITE);
btnHome.setBackground(cardinal);
btnHome.setBounds(517, 33, w, h);
btnHome.setContentAreaFilled(false);
btnHome.setOpaque(true);
panel3.add(btnHome);
JButton btnClients = new JButton("Clients");
btnClients.setFont(new Font("Times New Roman", Font.PLAIN, 20));
btnClients.setForeground(Color.WHITE);
btnClients.setBounds(690, 33, w, h);
btnClients.setBackground(cardinal);
btnClients.setContentAreaFilled(false);
btnClients.setOpaque(true);
panel3.add(btnClients);
JButton btnClose = new JButton("Close");
btnClose.setFont(new Font("Times New Roman", Font.PLAIN, 20));
btnClose.setForeground(Color.WHITE);
btnClose.setBounds(690, 198, w, h);
btnClose.setBackground(cardinal);
btnClose.setContentAreaFilled(false);
btnClose.setOpaque(true);
panel3.add(btnClose);
JButton btnLogin = new JButton("Admin Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Login l=new Login();
panel2.add(l);
}
});
btnLogin.setFont(new Font("Times New Roman", Font.PLAIN, 20));
btnLogin.setForeground(Color.WHITE);
btnLogin.setBounds(517, 116, w, h);
btnLogin.setBackground(cardinal);
btnLogin.setContentAreaFilled(false);
btnLogin.setOpaque(true);
panel3.add(btnLogin);
JPanel panel1 = new JPanel();
panel1.setBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(204, 51, 0), null));
panel1.setBackground(Color.WHITE);
panel1.setBounds(81, 33, 263, 344);
getContentPane().add(panel1);
panel1.setLayout(null);
JButton btnStartMonitoring = new JButton("");
btnStartMonitoring.setIcon(new ImageIcon(path1));
btnStartMonitoring.setBackground(cardinal);
btnStartMonitoring.setForeground(Color.WHITE);
btnStartMonitoring.setFont(new Font("Tahoma", Font.PLAIN, 15));
btnStartMonitoring.setBounds(10, 274, 239, 59);
panel1.add(btnStartMonitoring);
JLabel lblLogo = new JLabel("New label");
lblLogo.setIcon(new ImageIcon(path2));
lblLogo.setBounds(0, 11, 263, 253);
panel1.add(lblLogo);
}
public static void main(String args[]) {
new HOme("HOme");
//System.exit(0);
}
}
Edited
I have a login class extended from JPanel. When I click on Login Button from Home. It is not showing Login panel
Login.class
public class Login extends JPanel {
private JTextField txtPassword;
private JTextField txtID;
Color cardinal = new Color(194, 35, 38);
int w=155;
int h=50;
public Login() {
setBackground(Color.WHITE);
setLayout(null);
JLabel lblLogin = new JLabel("Login ");
lblLogin.setBackground(Color.ORANGE);
lblLogin.setHorizontalAlignment(SwingConstants.RIGHT);
lblLogin.setFont(new Font("Trajan Pro", Font.BOLD, 36));
lblLogin.setBounds(125, 0, 424, 59);
lblLogin.setBackground(cardinal);
//lblLogin.setContentAreaFilled(false);
lblLogin.setOpaque(true);
lblLogin.setForeground(Color.white);
add(lblLogin);
JLabel lblId = new JLabel("ID");
lblId.setHorizontalAlignment(SwingConstants.RIGHT);
lblId.setFont(new Font("Tekton Pro", Font.PLAIN, 23));
lblId.setBounds(181, 127, 66, 28);
add(lblId);
JLabel lblPassword = new JLabel("Password");
lblPassword.setHorizontalAlignment(SwingConstants.RIGHT);
lblPassword.setFont(new Font("Tekton Pro", Font.PLAIN, 23));
lblPassword.setBounds(136, 188, 111, 28);
add(lblPassword);
txtPassword = new JTextField();
lblPassword.setLabelFor(txtPassword);
txtPassword.setBounds(266, 183, 256, 41);
lblPassword.setForeground(cardinal);
add(txtPassword);
txtPassword.setColumns(10);
txtID = new JTextField();
lblId.setLabelFor(txtID);
txtID.setBounds(266, 123, 256, 39);
lblId.setForeground(cardinal);
add(txtID);
txtID.setColumns(10);
JButton btnLogin = new JButton("Login");
btnLogin.setForeground(Color.WHITE);
btnLogin.setFont(new Font("Times New Roman", Font.PLAIN, 20));
btnLogin.setBounds(324, 294, w, h);
btnLogin.setBackground(cardinal);
btnLogin.setContentAreaFilled(false);
btnLogin.setOpaque(true);
add(btnLogin);
setVisible(true);
}
You are not making your JFrame visible.
You can do either -
In your constructor, make it visible by adding the following line at the end -
setVisible(true);
Or in your main() function you can do -
HOme h = new HOme("HOme");
h.setVisible(true);
Answer to second part:
Import MouseListener, import java.awt.event.MouseListener;
Construct a MouseListener somewhere, include action of the button
Where you define btnLogin, add a line btnLogin.addMouseListener(<name of MouseListener>);
An example: http://www.java2s.com/Code/Java/Swing-JFC/ButtonActionSample.htm
Add something like setVisible(true); at the end of the HOme method.

Exception in thread "main" IllegalArgumentException: adding container's parent to itself

I just started learning programming and am trying to create a program that calculates the income tax at 20%. the program compiles but keeps getting errors. The error states
Exception in thread "main" java.lang.IllegalArgumentException: adding container's parent to itself
I don't understand what to change.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
public class IncomeTax extends JFrame
{
// declarations
Color black = new Color(0, 0, 0);
Color white = new Color(255, 255, 255);
Color light_gray = new Color(192, 192, 192);
DecimalFormat currency;
JLabel grossIncomeJLabel;
JTextField grossIncomeJTextField;
JLabel amountTaxedJLabel;
JTextField amountTaxedJTextField;
JTextField currencyJTextField;
JLabel amountDeductedJLabel;
JTextField amountDeductedJTextField;
JLabel netIncomeJLabel;
JTextField netIncomeJTextField;
JButton enterJButton;
JButton clearJButton;
double grossIncome;
double amountTaxed;
double amountDeducted;
double netIncome;
public IncomeTax()
{
createUserInterface();
}
public void createUserInterface()
{
Container contentPane = getContentPane();
contentPane.setBackground(white);
contentPane.setLayout(null);
// initialize components
// input
grossIncomeJLabel = new JLabel ();
grossIncomeJLabel.setBounds (50, 20, 150, 20);
grossIncomeJLabel.setFont(new Font("Default", Font.PLAIN, 12));
grossIncomeJLabel.setText ("Enter Gross Income:");
grossIncomeJLabel.setForeground(black);
grossIncomeJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(grossIncomeJLabel);
grossIncomeJTextField = new JTextField();
grossIncomeJTextField.setBounds(200, 20, 100, 20);
grossIncomeJTextField.setFont(new Font("Default", Font.PLAIN, 12));
grossIncomeJTextField.setHorizontalAlignment(JTextField.CENTER);
grossIncomeJTextField.setForeground(black);
grossIncomeJTextField.setBackground(white);
grossIncomeJTextField.setEditable(true);
contentPane.add(grossIncomeJTextField);
//outputs
amountTaxedJLabel = new JLabel();
amountTaxedJLabel.setBounds(50, 50, 150, 20);
amountTaxedJLabel.setFont(new Font("Default", Font.PLAIN, 12));
amountTaxedJLabel.setText("Amount Taxed");
amountTaxedJLabel.setForeground(black);
amountTaxedJLabel.setHorizontalAlignment(JLabel.LEFT);
amountTaxedJLabel.add(amountTaxedJLabel);
amountTaxedJTextField = new JTextField();
amountTaxedJTextField.setBounds(200, 50, 100, 20);
amountTaxedJTextField.setFont(new Font("Default", Font.PLAIN, 12));
amountTaxedJTextField.setHorizontalAlignment(JTextField.CENTER);
amountTaxedJTextField.setForeground(black);
amountTaxedJTextField.setBackground(white);
amountTaxedJTextField.setEditable(false);
contentPane.add(amountTaxedJTextField);
amountDeductedJLabel = new JLabel();
amountDeductedJLabel.setBounds(50, 80, 150, 20);
amountDeductedJLabel.setFont(new Font("Default", Font.PLAIN, 12));
amountDeductedJLabel.setText("Amount Deducted:");
amountDeductedJLabel.setForeground(black);
amountDeductedJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(amountDeductedJLabel);
amountDeductedJTextField = new JTextField();
amountDeductedJTextField.setBounds(200, 80, 100, 20);
amountDeductedJTextField.setFont(new Font("Default", Font.PLAIN, 12));
amountDeductedJTextField.setHorizontalAlignment(JTextField.CENTER);
amountDeductedJTextField.setForeground(black);
amountDeductedJTextField.setBackground(white);
amountDeductedJTextField.setEditable(false);
contentPane.add(amountDeductedJTextField);
netIncomeJLabel = new JLabel();
netIncomeJLabel.setBounds(50, 110, 150, 20);
netIncomeJLabel.setFont(new Font("Default", Font.PLAIN, 12));
netIncomeJLabel.setText("Net Income:");
netIncomeJLabel.setForeground(black);
netIncomeJLabel.setHorizontalAlignment(JLabel.LEFT);
contentPane.add(netIncomeJLabel);
netIncomeJTextField = new JTextField();
netIncomeJTextField.setBounds(200, 110, 100, 20);
netIncomeJTextField.setFont(new Font("Default", Font.PLAIN, 12));
netIncomeJTextField.setHorizontalAlignment(JTextField.CENTER);
netIncomeJTextField.setForeground(black);
netIncomeJTextField.setBackground(white);
netIncomeJTextField.setEditable(false);
contentPane.add(netIncomeJTextField);
// control
enterJButton = new JButton();
enterJButton.setBounds(50, 210, 100, 20);
enterJButton.setFont(new Font("Default", Font.PLAIN, 12));
enterJButton.setText("Enter");
enterJButton.setForeground(black);
enterJButton.setBackground(white);
contentPane.add(enterJButton);
enterJButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
enterJButtonActionPerformed(event);
}
}
);
clearJButton = new JButton();
clearJButton.setBounds(200, 210, 100, 20);
clearJButton.setFont(new Font("Default", Font.PLAIN, 12));
clearJButton.setText("Clear");
clearJButton.setForeground(black);
clearJButton.setBackground(white);
contentPane.add(clearJButton);
clearJButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
clearJButtonActionPerformed(event);
}
}
);
// set properties of application’s window
setTitle("Income Tax"); // set title
setSize( 400, 400 ); // set window size
setVisible(true); // display window
}
// main method
public static void main(String[] args)
{
IncomeTax application = new IncomeTax();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void enterJButtonActionPerformed(ActionEvent event)
{
// get input
grossIncome = Double.parseDouble(grossIncomeJTextField.getText());
// process data
final double Tax_Rate = .20;
amountTaxed = Tax_Rate;
amountDeducted = grossIncome * Tax_Rate;
netIncome = grossIncome - amountDeducted;
//display results
currency = new DecimalFormat("$0.00");
amountTaxedJTextField.setText("" + currency.format(amountTaxed));
amountDeductedJTextField.setText("" + currency.format(amountDeducted));
netIncomeJTextField.setText("" + currency.format(netIncome));
}
public void clearJButtonActionPerformed(ActionEvent event)
{
grossIncomeJTextField.setText("");
grossIncomeJTextField.requestFocusInWindow();
amountTaxedJTextField.setText("");
amountDeductedJTextField.setText("");
netIncomeJTextField.setText("");
}
}
Here
amountTaxedJLabel.add(amountTaxedJLabel);
I think you meant
contentPane.add(amountTaxedJLabel);
In the prior, you are adding a view to itself.
In the later, you are adding it to your contentPane.

Could not find or load main class, Swing

I am having a problem with my Java GUI application. It for some reason says that it cannot find or load the main class. I have checked all the brackets and don't see a problem. I had originally copied this over from another file as I wanted to start over with some things, maybe that is the problem. Here is the code:
public class GradeAverage extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
JTextField textField;
int numAverage = 0;
double average;
Container c;
JLabel gradelbl;
class AnswerHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
numAverage++;
gradelbl.setText("" + numAverage);
}
}
public GradeAverage() {
super("Final Grades");
c = getContentPane();
JLabel lblNewLabel = new JLabel("Grade: ");
lblNewLabel.setFont(new Font("Times New Roman", Font.BOLD, 14));
lblNewLabel.setBounds(30, 50, 46, 14);
textField = new JTextField();
textField.setBounds(81, 47, 86, 20);
textField.setColumns(10);
JLabel gradeLbl = new JLabel("0");
gradeLbl.setFont(new Font("Times New Roman", Font.BOLD, 14));
gradeLbl.setBounds(91, 92, 15, 14);
JLabel gradeTextLbl = new JLabel("Grades Recorded");
gradeTextLbl.setFont(new Font("Times New Roman", Font.BOLD, 14));
gradeTextLbl.setBounds(106, 92, 123, 14);
JButton recordBtn = new JButton("Record");
AnswerHandler ah = new AnswerHandler();
recordBtn.addActionListener(ah);
recordBtn.setBounds(177, 47, 86, 20);
JButton displayAverageBtn = new JButton("New button");
displayAverageBtn.setBounds(30, 117, 233, 23);
JPanel finalGradePanel = new JPanel();
finalGradePanel.setBorder(new TitledBorder(null, "Enter Your Final Grades", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 128)));
finalGradePanel.setBounds(10, 21, 264, 131);
JPanel avgGradePanel = new JPanel();
avgGradePanel.setFont(new Font("Times New Roman", Font.BOLD, 16));
avgGradePanel.setBounds(10, 178, 264, 61);
avgGradePanel.setBorder(new TitledBorder(null, "Average Grade", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 128)));
c.add(avgGradePanel);c.add(finalGradePanel);c.add(displayAverageBtn);c.add(recordBtn);c.add(gradeTextLbl);c.add(gradeLbl);
}
public static void main(String[] args) {
GradeAverage app = new GradeAverage();
app.setSize(300, 300);
app.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
app.setVisible(true);
}
}

Why joptionpane popup two times

I have two problem now.
My First Problem is when i click the confirm button, it will insert the data two times into ms access database.
My Second Problem is why joptionpane also popup two times.
I have the main login page when open the program.
When i click the sign up button, it will remove all the component inside the center jpanel.
Then it will add again component to use in registration form like jtextfield,jlabel,icon for username,password,tel no and others.I already checked, that the statement to execute insert statement and joptionpanes only have one times only.
This is the full code of my program
package userForm;
import java.sql.*;
import java.util.logging.Handler;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class loginForm extends JFrame implements ActionListener{
private JPanel centerPanel,bottomPanel;
private JLabel titleLabel, descriptionLabel;
private JLabel usernameLabel, passwordLabel, signInLabel, iconUsername, iconPassword;
private JLabel signUpLabel, fullNameLabel, staffIDLabel, usernameRegLabel, passwordRegLabel, telNoLabel, emailLabel;
private JLabel iconFullName, iconStaffID, iconUsernameReg, iconPasswordReg, iconTelNo, iconEmail;
private JTextField usernameField, fullNameField, staffIDField, usernameRegField, telNoField, emailField;
private JPasswordField passwordField, passwordRegField;
private JButton loginButton, signUpButton,confirmButton,exitButton;
private String username;
private String password;
userDatabase db;
userDatabase db1;
handler handle;
public loginForm(String title) {
db=new userDatabase();
handle =new handler();
//create label to use in topPanel
titleLabel = new JLabel("ABC Burger Inventory System");
titleLabel.setFont(new Font("Calibri", Font.TRUETYPE_FONT, 23));
titleLabel.setForeground(Color.white);
Border empty = new EmptyBorder(30, 20, 0, 0);
titleLabel.setBorder(empty);
descriptionLabel = new JLabel("Please Login To Use This System");
Border empty1 = new EmptyBorder(-30, 20, 0, 0);
descriptionLabel.setBorder(empty1);
descriptionLabel.setFont(new Font("Calibri", Font.HANGING_BASELINE, 14));
descriptionLabel.setForeground(Color.white);
//create label to use in centerPanel
signInLabel = new JLabel("SIGN IN");
usernameLabel = new JLabel("Username:");
passwordLabel = new JLabel("Password");
//create textfield to use in center Panel
usernameField = new JTextField("Required");
passwordField = new JPasswordField("Required");
//create label to use in registration form
signUpLabel = new JLabel("SIGN UP");
fullNameLabel = new JLabel("Full Name:");
staffIDLabel = new JLabel("Staff ID:");
usernameRegLabel = new JLabel("Username:");
passwordRegLabel = new JLabel("Password");
telNoLabel = new JLabel("Tel No:");
emailLabel = new JLabel("Email:");
//create textfield to use in registration form
fullNameField = new JTextField(30);
staffIDField = new JTextField(30);
usernameRegField = new JTextField(30);
passwordRegField = new JPasswordField(30);
telNoField = new JTextField(30);
emailField = new JTextField(30);
//create button to use in bottom Panel
loginButton = new JButton("Login");
signUpButton = new JButton("Sign Up");
confirmButton = new JButton("Confirm");
confirmButton.addActionListener(this);
exitButton = new JButton("Exit");
exitButton.addActionListener(this);
//create panel to use in frame
topPanelWithBackground topPanel = new topPanelWithBackground();
topPanel.setLayout(new GridLayout(2,1));
centerPanel = new JPanel();
centerPanel.setLayout(null);
bottomPanel = new JPanel();
bottomPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 40, 10));
//add component to top panel
topPanel.add(titleLabel);
topPanel.add(descriptionLabel);
//add component to center panel
signInLabel.setBounds(270, 30, 100, 20);
signInLabel.setFont(new Font("Calibri", Font.TRUETYPE_FONT, 20));
centerPanel.add(signInLabel);
usernameLabel.setBounds(200, 60, 100, 20);
usernameLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(usernameLabel);
ImageIcon imageUser = new ImageIcon("user.png");
iconUsername = new JLabel(imageUser, JLabel.CENTER);
iconUsername.setBounds(160, 90, 32, 32);
centerPanel.add(iconUsername);
usernameField.setBounds(200, 90, 200, 32);
usernameField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(usernameField);
passwordLabel.setBounds(200, 140, 100, 20);
passwordLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(passwordLabel);
ImageIcon imagePassword = new ImageIcon("password.png");
iconUsername = new JLabel(imagePassword, JLabel.CENTER);
iconUsername.setBounds(160, 170, 32, 32);
centerPanel.add(iconUsername);
passwordField.setBounds(200, 170, 200, 32);
passwordField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(passwordField);
loginButton.setFont(new Font("Calibri", Font.BOLD, 14));
loginButton.addActionListener(handle);
bottomPanel.add(loginButton);
signUpButton.setFont(new Font("Calibri", Font.BOLD, 14));
signUpButton.addActionListener(this);
bottomPanel.add(signUpButton);
//add confirm button
exitButton.setFont(new Font("Calibri", Font.BOLD, 14));
exitButton.addActionListener(this);
bottomPanel.add(exitButton);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(topPanel, BorderLayout.NORTH );
getContentPane().add(centerPanel, BorderLayout.CENTER);
getContentPane().add(bottomPanel, BorderLayout.SOUTH);
//frame behaviour
super.setTitle(title);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//exit
setSize(600,500);
}
class handler implements ActionListener{
public void actionPerformed(ActionEvent as) {
if(as.getSource()==loginButton){
centerPanel.removeAll();
centerPanel.revalidate();
centerPanel.repaint();
//add component to center panel
signInLabel.setBounds(270, 30, 100, 20);
signInLabel.setFont(new Font("Calibri", Font.TRUETYPE_FONT, 20));
centerPanel.add(signInLabel);
usernameLabel.setBounds(200, 60, 100, 20);
usernameLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(usernameLabel);
ImageIcon imageUser = new ImageIcon("user.png");
iconUsername = new JLabel(imageUser, JLabel.CENTER);
iconUsername.setBounds(160, 90, 32, 32);
centerPanel.add(iconUsername);
usernameField.setBounds(200, 90, 200, 32);
usernameField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(usernameField);
passwordLabel.setBounds(200, 140, 100, 20);
passwordLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(passwordLabel);
ImageIcon imagePassword = new ImageIcon("password.png");
iconUsername = new JLabel(imagePassword, JLabel.CENTER);
iconUsername.setBounds(160, 170, 32, 32);
centerPanel.add(iconUsername);
passwordField.setBounds(200, 170, 200, 32);
passwordField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(passwordField);
char[] temp_pwd=passwordField.getPassword();
String pwd=null;
pwd=String.copyValueOf(temp_pwd);
System.out.println("Username,Pwd:"+usernameField.getText()+","+pwd);
//The entered username and password are sent via "checkLogin()" which return boolean
if(db.checkLogin(usernameField.getText(), pwd))
{
newFrame regFace =new newFrame();
regFace.setVisible(true);
dispose();
}
else if(usernameField.getText().equals("") || passwordField.getText().equals("")){
JOptionPane.showMessageDialog(null, "Please fill out the form","Error!!",
JOptionPane.ERROR_MESSAGE);
}
else
{
//a pop-up box
JOptionPane.showMessageDialog(null, "Login failed!","Failed!!",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
#Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==signUpButton){
centerPanel.removeAll();
//sign up label
signUpLabel.setBounds(270, 30, 100, 20);
signUpLabel.setFont(new Font("Calibri", Font.TRUETYPE_FONT, 20));
centerPanel.add(signUpLabel);
//fullname label,icon and field
fullNameLabel.setBounds(80, 60, 100, 20);
fullNameLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(fullNameLabel);
ImageIcon imageFullname = new ImageIcon("fullname.png");
iconUsernameReg = new JLabel(imageFullname, JLabel.CENTER);
iconUsernameReg.setBounds(40, 90, 32, 32);
centerPanel.add(iconUsernameReg);
fullNameField.setBounds(80, 90, 200, 32);
fullNameField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(fullNameField);
//staffID label,icon and field
staffIDLabel.setBounds(80, 140, 100, 20);
staffIDLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(staffIDLabel);
ImageIcon imageStaffID = new ImageIcon("staffID.png");
iconStaffID = new JLabel(imageStaffID, JLabel.CENTER);
iconStaffID.setBounds(40, 170, 32, 32);
centerPanel.add(iconStaffID);
staffIDField.setBounds(80, 170, 200, 32);
staffIDField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(staffIDField);
//usernameReg label,icon and field
usernameRegLabel.setBounds(80, 220, 100, 20);
usernameRegLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(usernameRegLabel);
ImageIcon imageUsernameReg = new ImageIcon("user.png");
iconUsernameReg = new JLabel(imageUsernameReg, JLabel.CENTER);
iconUsernameReg.setBounds(40, 250, 32, 32);
centerPanel.add(iconUsernameReg);
usernameRegField.setBounds(80, 250, 200, 32);
usernameRegField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(usernameRegField);
//passwordReg label,icon and field
passwordRegLabel.setBounds(350, 60, 100, 20);
passwordRegLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(passwordRegLabel);
ImageIcon imagePasswordReg = new ImageIcon("password.png");
iconPasswordReg = new JLabel(imagePasswordReg, JLabel.CENTER);
iconPasswordReg.setBounds(310, 90, 32, 32);
centerPanel.add(iconPasswordReg);
passwordRegField.setBounds(350, 90, 200, 32);
passwordRegField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(passwordRegField);
//telNo label,icon and field
telNoLabel.setBounds(350, 140, 100, 20);
telNoLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(telNoLabel);
ImageIcon imagetelNo = new ImageIcon("phone.png");
iconTelNo = new JLabel(imagetelNo, JLabel.CENTER);
iconTelNo.setBounds(310, 170, 32, 32);
centerPanel.add(iconTelNo);
telNoField.setBounds(350, 170, 200, 32);
telNoField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(telNoField);
//Email label,icon and field
emailLabel.setBounds(350, 220, 100, 20);
emailLabel.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(emailLabel);
ImageIcon imageEmail = new ImageIcon("mail.png");
iconEmail = new JLabel(imageEmail , JLabel.CENTER);
iconEmail .setBounds(310, 250, 32, 32);
centerPanel.add(iconEmail );
emailField.setBounds(350, 250, 200, 32);
emailField.setFont(new Font("Calibri", Font.BOLD, 14));
centerPanel.add(emailField);
//add confirm button
confirmButton.setFont(new Font("Calibri", Font.BOLD, 14));
confirmButton.addActionListener(this);
bottomPanel.add(confirmButton);
centerPanel.revalidate();
centerPanel.repaint();
}
else if(ae.getSource()==confirmButton){
char[] temp_pwd1=passwordRegField.getPassword();
String pwd=null;
pwd=String.copyValueOf(temp_pwd1);
if(fullNameField.getText().equals("") || staffIDField.getText().equals("") || usernameRegField.getText().equals("") || passwordRegField.getPassword().length == 0 || telNoField.getText().equals("") || emailField.getText().equals("")){
JOptionPane.showMessageDialog(null, "Please Fill Out Any Field", "Error",
JOptionPane.ERROR_MESSAGE);
}
else {
db1 = new userDatabase();
try {
db1.insertData(fullNameField.getText(), staffIDField.getText(), usernameRegField.getText(), pwd, telNoField.getText(), emailField.getText());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else if(ae.getSource()==exitButton){
System.exit(0);
}
}
}
When you click the sign up button you are adding listener to the confirm button again. So when you click the confirm button it is executed twice.
Remove the following line in the actionPerformed method of LoginForm
confirmButton.addActionListener(this);

Categories