Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / December 2007

Tip: Looking for answers? Try searching our database.

JTabbedPane getSelectedIndex always -1

Thread view: 
tomzhi - 18 Dec 2007 03:56 GMT
Somehow I can only get the SelectedIndex inside main method. I keep
getting "-1" when I try to get it from other method. I am not sure if
it's because I create the tabs inside a for loop in the method. Please
advise. Thanks

class {

declare jpanel
declare jtabbedpane

    main{

         for loop {
         create jtabbedpane (name[], panel[]);

                    }

           addlistener to submitButton;

           System.out.println(jtabbedpane.getSelectedIndex());  //
this works
     }

submitButtonActionListener {
     System.out.println(jtabbedpane.getSelectedIndex());  //this
always return -1

     }

}
Andrew Thompson - 18 Dec 2007 04:17 GMT
>..Please advise.

I advise you to post an SSCCE, rather than pseudo-code.
<http://www.physci.org/codes/sscce.html>

>..Thanks

No worries.

Signature

Andrew Thompson
http://www.physci.org/

Nigel Wade - 18 Dec 2007 11:04 GMT
> Somehow I can only get the SelectedIndex inside main method. I keep
> getting "-1" when I try to get it from other method. I am not sure if
[quoted text clipped - 26 lines]
>
> }

You need to post real code. The problem is in the code which you haven't shown
us. The best we can do is guess, which may well be a waste of both your and our
time.

However, given that you are creating jtabbedpane in a loop it's a fair bet that
there is more than one JTabbedPane. Which one of them do you think jtabbedpane
refers to in the action listener?

Signature

Nigel Wade, System Administrator, Space Plasma Physics Group,
           University of Leicester, Leicester, LE1 7RH, UK
E-mail :    nmw@ion.le.ac.uk
Phone :     +44 (0)116 2523548, Fax : +44 (0)116 2523555

Lew - 18 Dec 2007 15:30 GMT
tomzhi wrote:
>> Somehow I can only get the SelectedIndex inside main method. I keep
>> getting "-1" when I try to get it from other method. I am not sure if
[quoted text clipped - 23 lines]
>>       }
>> }

> You need to post real code. The problem is in the code which you haven't shown
> us.

Given that they haven't shown us any code at all, it's a fair bet that you're
right, Nigel.

Signature

Lew

tomzhi - 18 Dec 2007 15:36 GMT
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[i] 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[i]=new JPanel();
          box[i]= new JComboBox(x.getdata(name[i]));
          box_2[i]=new JComboBox(x.getdata(name[i]));
          text[i]= new JTextField();
          text_2[i]= new JTextField();
          exit[i]=new JButton("Exit");
          submit[i]= new JButton("Submit");
          text[i].setColumns(10);
          text_2[i].setColumns(10);
          panel[i].add(text[i]);
          panel[i].add(box[i]);
          panel[i].add(text_2[i]);
          panel[i].add(box_2[i]);
          panel[i].add(submit[i],BorderLayout.PAGE_END);
          panel[i].add(exit[i],BorderLayout.PAGE_END);
          tab.add(name[i],panel[i]);

       }

       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[i].addActionListener(new
java.awt.event.ActionListener () {
               public void actionPerformed(java.awt.event.ActionEvent
evt){
                   exitActionPerformed(evt);
               }
           });

       }

        for (i=0;i<10;i++) {
           exit[i].addActionListener(new
java.awt.event.ActionListener () {
               public void actionPerformed(java.awt.event.ActionEvent
evt){
                   exitActionPerformed(evt);
               }
           });

       }

        for (i=0;i<10;i++) {
           submit[i].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());

       }

      }


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.