Related
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.
import java.awt.*;
public class MainWindow {
private JFrame frmMainwindow;
private JTextField textField;
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;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainWindow window = new MainWindow();
window.frmMainwindow.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*
*/
Connection conn = null;
Connection conn1 = null;
public MainWindow() {
initialize();
MainPage mp = new MainPage();
mp.setVisible(true);
}
/**
* Initialize the contents of the frame.
*/
public void Reset(){
textField.setText(null);
textField_1.setText(null);
textField_2.setText(null);
textField_3.setText(null);
textField_4.setText(null);
textField_5.setText(null);
textField_6.setText(null);
textField_7.setText(null);
textField_8.setText(null);
}
public void DBCreation(){
conn = CreatingDb.CreateDb();
String DBName = textField.getText();
try{
String query = "CREATE DATABASE " + DBName ;
PreparedStatement pst = conn.prepareStatement(query);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "DB Created Successful.....");
pst.close();
}catch(Exception R){
JOptionPane.showMessageDialog(null, R);
}
}
public void Insert(){
String DBName = textField.getText();
conn1 = SqlConnection.InsertDB(DBName);
try{
String Table1 = "CREATE TABLE PERSONALINFO (PersonName VARCHAR(25),DoorNO VARCHAR(10),Street VARCHAR(25),Village VARCHAR(25),PhoneNo LONGINT(10),UserName VARCHAR(15),Password VARCHAR(10),Hint VARCHAR(50))";
String Insert1 = "INSERT INTO PERSONALINFO (PersonName,DoorNO,Street,Village,PhoneNo,UserName,Password,Hint) VALUES (?,?,?,?,?,?,?,?)";
PreparedStatement pstt = conn.prepareStatement(Table1);
PreparedStatement psti = conn.prepareStatement(Insert1);
psti.setString(1, textField_1.getText());
psti.setString(2, textField_2.getText());
psti.setString(3, textField_3.getText());
psti.setString(4, textField_4.getText());
psti.setString(5, textField_5.getText());
psti.setString(6, textField_6.getText());
psti.setString(7, textField_7.getText());
psti.setString(8, textField_8.getText());
pstt.execute();
psti.execute();
JOptionPane.showMessageDialog(null, "Table Created and Data Inserted Successfully....");
psti.close();
pstt.close();
}catch(Exception R){
JOptionPane.showMessageDialog(null, R);
}
}
private void initialize() {
frmMainwindow = new JFrame();
frmMainwindow.getContentPane().setBackground(Color.WHITE);
frmMainwindow.getContentPane().setFont(new Font("Times New Roman", Font.BOLD, 14));
frmMainwindow.setTitle("Create DataBase");
frmMainwindow.setBounds(100, 100, 668, 416);
frmMainwindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int height = screenSize.height;
int width = screenSize.width;
frmMainwindow.setSize(width/2, height/2);
// center the jframe on screen
frmMainwindow.setLocationRelativeTo(null);
frmMainwindow.getContentPane().setLayout(null);
JPanel panel_1 = new JPanel();
panel_1.setBackground(Color.WHITE);
panel_1.setBounds(120, 70, 426, 205);
frmMainwindow.getContentPane().add(panel_1);
panel_1.setLayout(null);
panel_1.setVisible(false);
JLabel lblDatabaseName = new JLabel("DataBase Name");
lblDatabaseName.setBounds(0, 3, 107, 14);
panel_1.add(lblDatabaseName);
lblDatabaseName.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblPersonName = new JLabel("Person Name");
lblPersonName.setBounds(0, 32, 89, 14);
panel_1.add(lblPersonName);
lblPersonName.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblDoorNo = new JLabel("Door No");
lblDoorNo.setBounds(0, 57, 79, 14);
panel_1.add(lblDoorNo);
lblDoorNo.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblStreet = new JLabel("Street");
lblStreet.setBounds(0, 85, 46, 14);
panel_1.add(lblStreet);
lblStreet.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblVillage = new JLabel("Village");
lblVillage.setBounds(0, 110, 46, 14);
panel_1.add(lblVillage);
lblVillage.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblPhoneNo = new JLabel("Phone No");
lblPhoneNo.setBounds(0, 135, 58, 14);
panel_1.add(lblPhoneNo);
lblPhoneNo.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblUserbame = new JLabel("UserName");
lblUserbame.setBounds(232, 3, 79, 14);
panel_1.add(lblUserbame);
lblUserbame.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblPassword = new JLabel("Password");
lblPassword.setBounds(232, 32, 68, 14);
panel_1.add(lblPassword);
lblPassword.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblHint = new JLabel("Hint");
lblHint.setBounds(232, 57, 46, 14);
panel_1.add(lblHint);
lblHint.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField = new JTextField();
textField.setBounds(117, 0, 105, 20);
panel_1.add(textField);
textField.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField.setColumns(10);
textField_1 = new JTextField();
textField_1.setBounds(117, 29, 105, 20);
panel_1.add(textField_1);
textField_1.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_1.setColumns(10);
textField_2 = new JTextField();
textField_2.setBounds(117, 54, 105, 20);
panel_1.add(textField_2);
textField_2.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_2.setColumns(10);
textField_3 = new JTextField();
textField_3.setBounds(117, 82, 105, 20);
panel_1.add(textField_3);
textField_3.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_3.setColumns(10);
textField_4 = new JTextField();
textField_4.setBounds(117, 107, 105, 20);
panel_1.add(textField_4);
textField_4.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_4.setColumns(10);
textField_5 = new JTextField();
textField_5.setBounds(117, 132, 105, 20);
panel_1.add(textField_5);
textField_5.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_5.setColumns(10);
textField_6 = new JTextField();
textField_6.setBounds(321, 0, 105, 20);
panel_1.add(textField_6);
textField_6.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_6.setColumns(10);
textField_7 = new JTextField();
textField_7.setBounds(321, 29, 105, 20);
panel_1.add(textField_7);
textField_7.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_7.setColumns(10);
textField_8 = new JTextField();
textField_8.setBounds(321, 54, 105, 20);
panel_1.add(textField_8);
textField_8.setFont(new Font("Times New Roman", Font.BOLD, 14));
textField_8.setColumns(10);
JButton btnReset = new JButton("Reset");
btnReset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Reset();
}
});
btnReset.setBounds(232, 171, 89, 23);
panel_1.add(btnReset);
JButton btnSave = new JButton("Save");
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DBCreation();
Insert();
Reset();
}
});
btnSave.setBounds(327, 171, 89, 23);
panel_1.add(btnSave);
panel_1.setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{lblDatabaseName, textField_1, lblPersonName, lblDoorNo, lblStreet, lblVillage, lblPhoneNo, lblUserbame, lblPassword, lblHint, textField_2, textField_3, textField_4, textField_5, textField_6, textField_7, textField_8, btnSave, btnReset, textField}));
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.setBounds(217, 122, 233, 101);
frmMainwindow.getContentPane().add(panel);
panel.setLayout(null);
JLabel lblCreateDatabase = new JLabel("Create DataBase");
lblCreateDatabase.setBounds(0, 4, 120, 14);
panel.add(lblCreateDatabase);
lblCreateDatabase.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblOpenDatabase = new JLabel("Open DataBase");
lblOpenDatabase.setBounds(0, 42, 120, 14);
panel.add(lblOpenDatabase);
lblOpenDatabase.setFont(new Font("Times New Roman", Font.BOLD, 14));
JLabel lblNewLabel = new JLabel("Delete DataBase");
lblNewLabel.setBounds(0, 82, 120, 14);
panel.add(lblNewLabel);
lblNewLabel.setFont(new Font("Times New Roman", Font.BOLD, 14));
JButton btnNew = new JButton("New");
btnNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
panel.setVisible(false);
panel_1.setVisible(true);
}
});
btnNew.setBounds(144, 0, 89, 23);
panel.add(btnNew);
btnNew.setFont(new Font("Times New Roman", Font.BOLD, 14));
JButton btnSelect = new JButton("Select");
btnSelect.setBounds(144, 38, 89, 23);
panel.add(btnSelect);
btnSelect.setFont(new Font("Times New Roman", Font.BOLD, 14));
JButton btnRemove = new JButton("Remove");
btnRemove.setBounds(144, 78, 89, 23);
panel.add(btnRemove);
btnRemove.setFont(new Font("Times New Roman", Font.BOLD, 14));
}
}
My Second java file
public class SqlConnection {
Connection conn1 = null;
public static Connection InsertDB(String DBName){
String value = DBName;
try{
Class.forName("com.mysql.jdbc.Driver");
String DB = "jdbc:mysql://localhost:3306/";
Connection conn = DriverManager.getConnection(DB+value,"root","");
JOptionPane.showMessageDialog(null,value);
return conn;
}catch(Exception e){
JOptionPane.showMessageDialog(null,e);
return null;
}
}
}
MY Third java File
public class CreatingDb {
Connection conn = null;
public static Connection CreateDb(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/","root","");
return conn;
}catch(Exception e){
JOptionPane.showMessageDialog(null,e);
return null;
}
}
}
MY Forth java File..
public class MainPage extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainPage frame = new MainPage();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MainPage() {
setExtendedState(Frame.MAXIMIZED_BOTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnFile = new JMenu("File");
menuBar.add(mnFile);
JMenuItem mntmNew = new JMenuItem("New");
mnFile.add(mntmNew);
JMenuItem mntmOpen = new JMenuItem("Open");
mnFile.add(mntmOpen);
JMenuItem mntmSave = new JMenuItem("Save");
mnFile.add(mntmSave);
JMenuItem mntmSaveAs = new JMenuItem("Save As...");
mnFile.add(mntmSaveAs);
JMenuItem mntmExit = new JMenuItem("Exit");
mnFile.add(mntmExit);
JMenu mnEdit = new JMenu("Edit");
menuBar.add(mnEdit);
JMenu mnHelp = new JMenu("Help");
menuBar.add(mnHelp);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
}
}
I Have imported required packages...
In the above code I am creating database using textfield at beginning of application. DataBase is created successfully but i am unable to access the created dataBase . It show java.sql.Exception: Unknown database Selection.
please any one help me ....
String DB = "jdbc:mysql://localhost:3306/";
Connection conn = DriverManager.getConnection(DB+value,"root","");
i think your problem appending. you do not append DB + value. give password.
The MySQL manual says this:
If the database is not specified, the connection is made with no default database. In this case, either call the setCatalog() method on the Connection instance, or fully specify table names using the database name (that is, SELECT dbname.tablename.colname FROM dbname.tablename...) in your SQL. Opening a connection without specifying the database to use is generally only useful when building tools that work with multiple databases, such as GUI database managers.
Note
Always use the Connection.setCatalog() method to specify the desired database in JDBC applications, rather than the USE database statement.
It doesn't specify what happens if you don't call setCatalog() but given your problem I guess "nothing good." You should add a schema to your connect string or call setCatalog().
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.
I am having a problem with opening a new window. If I comment out the if(e.getsource() == btnAddBook) the action performed opens the window. As soon as I add the if statement in and try to open the window, nothing happens.
/* this is the code that adds the button and the action listner
JButton btnAddBook = new JButton("Add Book");
btnAddBook.setFont(new Font("Tahoma", Font.BOLD, 8));
btnAddBook.setBounds(10, 327, 86, 23);
btnAddBook.addActionListener(this);
getContentPane().add(btnAddBook);
*/
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == btnAddBook){
ChildWindowAdd child = new ChildWindowAdd(this);
this.setVisible(true);
child.setVisible(true);
child.setSize(450,400);
child.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}
}
class ChildWindowAdd extends JFrame implements ActionListener {
LibraryDatabase parent;
Container c;
JLabel lblTitle, lblaName, lblISBN, lblDate,lbl1,lbl5,lbl10;
JTextField txtTitle, txtaName, txtISBN, txtDate;
JButton btnSave;
JSlider sRating;
JCheckBox chkSci, chkFant, chkRomance, chkAction, chkThriller, chkHorror;
public ChildWindowAdd(LibraryDatabase parent){
this.parent = parent;
getContentPane().setLayout(null);
txtTitle = new JTextField();
txtTitle.setBounds(46, 29, 146, 20);
getContentPane().add(txtTitle);
txtTitle.setColumns(10);
JLabel lblTitle = new JLabel("Book Title");
lblTitle.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblTitle.setBounds(36, 11, 72, 14);
getContentPane().add(lblTitle);
JLabel lblaName = new JLabel("Author Name");
lblaName.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblaName.setBounds(36, 60, 89, 14);
getContentPane().add(lblaName);
txtaName = new JTextField();
txtaName.setBounds(46, 85, 146, 20);
getContentPane().add(txtaName);
txtaName.setColumns(10);
JLabel lblIsbnNumber = new JLabel("ISBN Number");
lblIsbnNumber.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblIsbnNumber.setBounds(36, 116, 86, 14);
getContentPane().add(lblIsbnNumber);
txtISBN = new JTextField();
txtISBN .setBounds(46, 143, 146, 20);
getContentPane().add(txtISBN );
txtISBN .setColumns(10);
JLabel lblDate = new JLabel("Date Added yyyy/mm/dd");
lblDate.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblDate.setBounds(36, 174, 177, 20);
getContentPane().add(lblDate);
txtDate = new JTextField();
txtDate.setBounds(46, 199, 146, 20);
getContentPane().add(txtDate);
txtDate.setColumns(10);
JPanel genreP = new JPanel();
genreP.setBounds(239, 29, 158, 194);
genreP.setBorder(new TitledBorder(null, "Genre's", TitledBorder.LEADING, TitledBorder.TOP, null, null));
getContentPane().add(genreP);
genreP.setLayout(null);
final JCheckBox chkSci = new JCheckBox("Sci - Fi");
chkSci.setBounds(23, 22, 97, 23);
genreP.add(chkSci);
final JCheckBox chkFant = new JCheckBox("Fantasy");
chkFant.setBounds(23, 48, 97, 23);
genreP.add(chkFant);
final JCheckBox chkRomance = new JCheckBox("Romance");
chkRomance.setBounds(23, 74, 97, 23);
genreP.add(chkRomance);
final JCheckBox chkAction = new JCheckBox("Action");
chkAction.setBounds(23, 100, 97, 23);
genreP.add(chkAction);
final JCheckBox chkThriller = new JCheckBox("Thriller");
chkThriller.setBounds(23, 126, 97, 23);
genreP.add(chkThriller);
final JCheckBox chkHorror = new JCheckBox("Horror");
chkHorror.setBounds(23, 152, 97, 23);
genreP.add(chkHorror);
final JSlider sRating = new JSlider();
sRating.setBounds(118, 280, 200, 26);
getContentPane().add(sRating);
JLabel lbl1 = new JLabel("1");
lbl1.setBounds(118, 257, 7, 14);
getContentPane().add(lbl1);
JLabel lbl10 = new JLabel("10");
lbl10.setBounds(301, 257, 17, 14);
getContentPane().add(lbl10);
JLabel lbl5 = new JLabel("5");
lbl5.setBounds(214, 257, 7, 14);
getContentPane().add(lbl5);
JButton btnSave = new JButton("Save Book");
btnSave.addActionListener(this);
btnSave.setBounds(164, 317, 110, 23);
getContentPane().add(btnSave);
JLabel lblRating = new JLabel("Rate the book");
lblRating.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblRating.setBounds(118, 226, 95, 20);
getContentPane().add(lblRating);
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
PrintWriter fileWriter = null;
try {
fileWriter = new PrintWriter(new BufferedWriter(new FileWriter("c:\\temp\\database.dat", true)));
} catch (IOException e) {
e.printStackTrace();
}
fileWriter.println( txtTitle.getText()+" , "+txtaName.getText()+" , "+txtISBN.getText()+" , "+txtDate.getText()+" , "+String.valueOf(chkSci.isSelected())+" , "+String.valueOf(chkFant.isSelected())+" , "+String.valueOf(chkRomance.isSelected())+" , "+String.valueOf(chkAction.isSelected())+" , "+String.valueOf(chkThriller.isSelected())+" , "+String.valueOf(chkHorror.isSelected())+" , "+sRating.getValue());
fileWriter.close();
}
});
}
#Override
public void actionPerformed(ActionEvent arg0) {
parent.setVisible(true);
this.dispose();
}
public void actionPerformed1(ActionEvent e) {
// TODO Auto-generated method stub
}
}
Check on the basis of button text
((JButton)source).getText().equals("Add Book")
here is complete code
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source instanceof JButton && ((JButton) source).getText().equals("Add Book")) {
...
}
}
This worked for me. I had to match the String as the e.getsource was not working.
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
String test = ((JButton)source).getText();
if(test == "Add Book"){
ChildWindowAdd child = new ChildWindowAdd(this);
this.setVisible(true);
child.setVisible(true);
child.setSize(450,400);
child.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
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);