This is a unit converter I am trying to create. Loadtable is class
that loads the data to create the dropdown list on different tab.
I used for loop to create arrays of panels, which becomes tabs. Also
arrays of buttons, dropdown list.
Now, I need to use submit button to call a function to calculate
the conversion factor. However, I can't define which tab the user has
currently selected. I can do it only within the main method, but not
outside. It would become -1 outside. Please help.
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.*;
public class Main {
JTabbedPane tab = new JTabbedPane();
int i, index;
JComboBox[] box = new JComboBox [10];
JComboBox[] box_2 = new JComboBox [10];
JTextField[] text = new JTextField[10];
JTextField[] text_2 = new JTextField[10];
JPanel [] panel = new JPanel[10];
JButton[] exit = new JButton[10];
JButton[] submit = new JButton[10];
public Main() {
}
public static void main(String[] args) throws
FileNotFoundException, IOException {
JTabbedPane tab = new JTabbedPane();
int i;
JComboBox[] box = new JComboBox [10];
JComboBox[] box_2 = new JComboBox [10];
JTextField[] text = new JTextField[10];
JTextField[] text_2 = new JTextField[10];
JPanel [] panel = new JPanel[10];
JButton[] exit = new JButton[10];
JButton[] submit = new JButton[10];
String [] name = {"Distance",
"Area","Temperature","Speed","Volume",
"Density","Force","Energy","Frequency","Astronomical"};
loadtable x =new loadtable();
x.load();
for (i=0;i<10;i++) {
panel=new JPanel();
box= new JComboBox(x.getdata(name));
box_2=new JComboBox(x.getdata(name));
text= new JTextField();
text_2= new JTextField();
exit=new JButton("Exit");
submit= new JButton("Submit");
text.setColumns(10);
text_2.setColumns(10);
panel.add(text);
panel.add(box);
panel.add(text_2);
panel.add(box_2);
panel.add(submit,BorderLayout.PAGE_END);
panel.add(exit,BorderLayout.PAGE_END);
tab.add(name,panel);
}
JFrame frame = new JFrame("Unit Converter");
frame.add(tab);
frame.setSize(750,200);
frame.setLocation(200,200);
frame.setVisible(true);
for (i=0;i<10;i++) {
exit.addActionListener(new
java.awt.event.ActionListener () {
public void actionPerformed(java.awt.event.ActionEvent
evt){
exitActionPerformed(evt);
}
});
}
for (i=0;i<10;i++) {
exit.addActionListener(new
java.awt.event.ActionListener () {
public void actionPerformed(java.awt.event.ActionEvent
evt){
exitActionPerformed(evt);
}
});
}
for (i=0;i<10;i++) {
submit.addActionListener(new
java.awt.event.ActionListener () {
public void actionPerformed(java.awt.event.ActionEvent
evt){
submitActionPerformed(evt);
}
});
}
}
private static void
exitActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private static void
submitActionPerformed(java.awt.event.ActionEvent evt) {
Main x = new Main();
System.out.println(x.tab.getSelectedIndex());
}
}