JComboBox addActionListener problem?

HI,
i am using JComboBox to add each item action perform of use StyleEditorKit.FontSizeAction("String", int), but i only can add one item action perform only. See my code any problem...
for(int i>12;i<=50 ; i++){
              comboBox.addItem(" "+i);
           // i want to loop each item can function
            comboBox.addActionListener(new StyleEditorKit.FontSizeAcion("i ", i)Thanks

FontSizeAction is able to set the size to a value delivered in String format as the command String of its ActionEvent. Unfortunately, the JComboBox doesn't deliver the String value of the selected item as command string but an arbitrary value to be set once. So you have to wrap your FontSizeAction in a custom ActionListener of your own where you retrieve the selected item, cast it to a String and pass this value to FontSizeAction as the command String of a new ActionEvent object.
You should also get rid of that whitespace when creating the size value, String.valueOf(int) is a better way to create a String for an int.

Similar Messages

  • JComboBox addActionListener?

    Hi, I'm trying to write a program so that when the user makes a selection from the combobox, the selection will be inputted into a string.
    However, whenever I try to run the program it gives me this error:
    "Questions.java": addItemListener(java.awt.event.ItemListener) in javax.swing.JComboBox cannot be applied to (Questions) at line 120, column 15
    This is the part of my code which I think is relevent:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.io.*;
    public class Questions extends JFrame {
      private Container container;
      private GridBagLayout gbLayout;
      private GridBagConstraints gbConstraints;
      private ButtonGroup radioGroup;
      JLabel correctL, incorrectL, correctNumL, incorrectNumL,
          youSelectL, correctSelectL;
      JButton nextB, exitB, guessB;
      JCheckBox aCB, bCB, cCB, dCB;
      JTextArea questionTA;
      JComboBox selection = new JComboBox();
      public static int qNum[] = new int[20];
      public static String question[] = new String[20];
      public static String choiceA[] = new String[20];
      public static String choiceB[] = new String[20];
      public static String choiceC[] = new String[20];
      public static String choiceD[] = new String[20];
      public static String answer[] = new String[20];
      public static int recordNum = (int) (Math.random() * 20);
      public static int total = 0;
      public static int right = 0;
      public static int wrong = 0;
      public static String whichQselected;
      public static boolean qAnswered = false;
      nextButtonHandler nextHandler;
      guessButtonHandler guessHandler;
      exitButtonHandler exitHandler;
      public Questions() {
        super("Questions");
        setContentPane(new ContentPanel("bg.gif"));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        container = getContentPane();
        gbLayout = new GridBagLayout();
        container.setLayout(gbLayout);
        gbConstraints = new GridBagConstraints();
        questionTA = new JTextArea(question[recordNum], 3, 23);
        questionTA.setForeground(Color.blue);
        questionTA.setFont(new Font("Impact", Font.PLAIN, 15));
        questionTA.setWrapStyleWord(true);
        questionTA.setLineWrap(true);
        questionTA.setEditable(false);
        correctL = new JLabel("Correct Answers: ");
        correctL.setForeground(Color.magenta);
        correctL.setFont(new Font("Ariel", Font.PLAIN, 10));
        correctNumL = new JLabel("0/0");
        correctNumL.setForeground(Color.magenta);
        correctNumL.setFont(new Font("Ariel", Font.PLAIN, 10));
        incorrectL = new JLabel("Incorrect Answers: ");
        incorrectL.setForeground(Color.red);
        incorrectL.setFont(new Font("Ariel", Font.PLAIN, 10));
        incorrectNumL = new JLabel("0/0");
        incorrectNumL.setForeground(Color.red);
        incorrectNumL.setFont(new Font("Ariel", Font.PLAIN, 10));
        youSelectL = new JLabel("You've selected:");
        youSelectL.setForeground(Color.orange);
        youSelectL.setFont(new Font("Ariel", Font.BOLD, 13));
        correctSelectL = new JLabel("The Correct answer is: ");
        correctSelectL.setForeground(Color.ORANGE);
        correctSelectL.setFont(new Font("Ariel", Font.BOLD, 13));
        nextB = new JButton("Next Question");
        nextHandler = new nextButtonHandler();
        nextB.addActionListener(nextHandler);
        nextB.setBackground(Color.WHITE);
        guessB = new JButton("Guess Picture");
        guessHandler = new guessButtonHandler();
        guessB.addActionListener(guessHandler);
        guessB.setBackground(Color.WHITE);
        exitB = new JButton("Exit");
        exitHandler = new exitButtonHandler();
        exitB.addActionListener(exitHandler);
        exitB.setBackground(Color.WHITE);
        aCB = new JCheckBox(choiceA[recordNum]);
        aCB.setBackground(Color.white);
        bCB = new JCheckBox(choiceB[recordNum]);
        bCB.setBackground(Color.white);
        cCB = new JCheckBox(choiceC[recordNum]);
        cCB.setBackground(Color.white);
        dCB = new JCheckBox(choiceD[recordNum]);
        dCB.setBackground(Color.white);
        //register events
        CheckBoxHandler handler = new CheckBoxHandler();
        aCB.addItemListener(handler);
        bCB.addItemListener(handler);
        cCB.addItemListener(handler);
        dCB.addItemListener(handler);
        //PROBLEM HERE!!!
        selection.addItemListener(this);
        selection.addItem("Geography Questions");
        selection.addItem("Math Questions");
        selection.addItem("Mixed Questions");
        selection.addItem("Music Questions");
        selection.addItem("Sports Questions");
        selection.addItem("TV Questions");
        addComponent(selection, 0, 0, 3, 1);
        addComponent(questionTA, 1, 0, 3, 1);
        addComponent(aCB, 2, 0, 1, 1);
        addComponent(bCB, 3, 0, 1, 1);
        addComponent(cCB, 4, 0, 1, 1);
        addComponent(dCB, 5, 0, 1, 1);
        addComponent(correctL, 2, 1, 1, 1);
        addComponent(correctNumL, 2, 2, 1, 1);
        addComponent(incorrectL, 2, 1, 1, 1);
        addComponent(incorrectNumL, 2, 2, 1, 1);
        addComponent(nextB, 6, 0, 1, 1);
        addComponent(guessB, 6, 1, 1, 1);
        addComponent(exitB, 6, 2, 1, 1);
        addComponent(youSelectL, 7, 0, 2, 1);
        addComponent(correctSelectL, 8, 0, 2, 1);
        gbConstraints.fill = GridBagConstraints.BOTH;
        setSize(420, 350);
        show();
    //ACTION PERFORMED FOR JCOMBOBOX!!
      public void actionPerformed(ActionEvent e) {
        String whichQ[] = {"Geography", "Math",
                          "Mixed", "Music", "Sports", "TV"};
        int Selected = ((JComboBox) (e.getSource())).getSelectedIndex();
        whichQselected = whichQ[Selected];
      }Thanks in advance!

    Also, you have added an item listener and implemented the method from the action listener. Above all, you did not declare your class as implementing the ActionListener interface.

  • JCombobox selection problem

    Hello,
    I have some problem implementing events associated with JComboBox. My requirement is "the event should get fired only when an item is selected in the combobox". It may occur thet using arrow keys I can traverse all elements in the combobox and on item change the event should not get fired. I tried with itemstatechanged, actionperformed but no result.
    Any help will be appreciated.
    regards,
    Ranjan

    A simple working example:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.text.*;
    public class ComboBoxAction extends JFrame implements ActionListener
         private JComboBox comboBox;
         public ComboBoxAction()
              comboBox = new JComboBox();
              comboBox.addActionListener( this );
              comboBox.addItem( "Item 1" );
              comboBox.addItem( "Item 2" );
              comboBox.addItem( "Item 3" );
              comboBox.addItem( "Item 4" );
              //  This prevents action events from being fired when the
              //  up/down arrow keys are used on the dropdown menu
              comboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
              getContentPane().add( comboBox );
         public void actionPerformed(ActionEvent e)
              System.out.println( comboBox.getSelectedItem() );
              //  make sure popup is closed when 'isTableCellEditor' is used
              comboBox.hidePopup();
         public static void main(String[] args)
              JFrame frame = new ComboBoxAction();
              frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
              frame.pack();
              frame.setVisible( true );
    }

  • JComboBox listener problem

    Hi all,
    I have following problem, i use combobox and i need to write listener for selecting item.
    But both ActionListener and ItemListener are unusable for me, because i dont know how to differ between selecting item when combobox is poped up.
    I dont want to react on going thru items in popup, but only to FINAL select of button.
    Please Help.
    Mathew, HSIGP

         This works on non editable combo boxes
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.text.*;
    public class ComboBoxAction extends JFrame implements ActionListener
         JComboBox comboBox;
         public ComboBoxAction()
              comboBox = new JComboBox();
              comboBox.addActionListener( this );
              comboBox.addItem( "Item 1" );
              comboBox.addItem( "Item 2" );
              comboBox.addItem( "Item 3" );
              comboBox.addItem( "Item 4" );
              //  This prevents action events from being fired when the
              //  up/down arrow keys are used on the dropdown menu
              comboBox.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
              getContentPane().add( comboBox );
         public void actionPerformed(ActionEvent e)
              System.out.println( comboBox.getSelectedItem() );
              //  make sure popup is closed when 'isTableCellEditor' is used
              comboBox.hidePopup();
         public static void main(String[] args)
              final ComboBoxAction frame = new ComboBoxAction();
              frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
              frame.pack();
              frame.setVisible( true );
    }

  • JComboBox Render Problem........

    Hi I have a problem in JCombox renderer in my application Problem is i have Three comboBox columns in my table wing same Renderer and Editor. second and third combo column's aree working fine But in first combo-column if i add a new row clicking add button and if change a value in top- most comboBox i will reflect in all ComboBox's below, this is not happening in othe two Combo-column. i'am not at all gettin why this happens where i am using same renderer for all combo-columns how to stop this, When a new row is add ComboBox first item as Selected,
    Can any one please tell me how to solve this,
    since i cannot past entair application i am pasting example with similar suituation using same renderer.
    Thank's in Advance
    CODE:-
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.DefaultCellEditor;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumn;
    * @author 501376972
    public class MainTable extends JFrame{
    DefaultTableModel model = null;
    JTable table = null;
    JScrollPane scrollpane = null;
    JButton btCancel = null;
    JButton btADD = null;
    JPanel panelButton = null;
    public Object[][] data = null;
    String column[] = {" ","A","B","C","D","E","F"};
    String oprator[] = {" ","=","/","*","-","+"};
    String number[] = {" ","1","2","3","4","5","6"};
    /** Creates a new instance of MainTable */
    public MainTable() {
    model = new DefaultTableModel();
    model.addColumn("Column");
    model.addColumn("Operator");
    model.addColumn("Value");
    model.addColumn("Number");
    table = new JTable();
    table.setModel(model);
    data = new Object[][]{
    {column, oprator, null, number}
    model.addRow(data);
    TableColumn colCol = table.getColumnModel().getColumn(0);
    colCol.setCellRenderer(new ComboBoxCellRenderer(column));
    colCol.setCellEditor(new ComboBoxCellEditor(column));
    TableColumn colOpr = table.getColumnModel().getColumn(1);
    colOpr.setCellRenderer(new ComboBoxCellRenderer(oprator));
    colOpr.setCellEditor(new ComboBoxCellEditor(oprator));
    TableColumn colLog = table.getColumnModel().getColumn(3);
    colLog.setCellRenderer(new ComboBoxCellRenderer(number));
    colLog.setCellEditor(new ComboBoxCellEditor(number));
    scrollpane = new JScrollPane(table);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(scrollpane,BorderLayout.CENTER);
    panelButton = new JPanel();
    btADD = new JButton("ADD");
    btCancel = new JButton("Cancel");
    panelButton.add(btADD);
    panelButton.add(btCancel);
    getContentPane().add(panelButton,BorderLayout.SOUTH);
    btCancel.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    dispose();
    btADD.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    model.addRow(data);
    getContentPane().add(scrollpane);
    setSize(500,500);
    class ComboBoxCellRenderer extends JComboBox implements TableCellRenderer {
    public ComboBoxCellRenderer(String[] items) {
    super(items);
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    if (isSelected) {
    //DO NOTHIING
    } else {
    //DO NOTHIING
    // Select the current value
    if(value == null)
    setSelectedIndex(0);
    else
    setSelectedItem(value);
    return this;
    public class ComboBoxCellEditor extends DefaultCellEditor {
    public ComboBoxCellEditor(String[] items) {
    super(new JComboBox(items));
    * @param args the command line arguments
    public static void main(String[] args) {
    MainTable mt = new MainTable();
    mt.setVisible(true);
    }

    Don't forget to use the [url http://forum.java.sun.com/help.jspa?sec=formatting]Code Formatting Tags so the posted code retains its original formatting.
    Don't know why the code works the way it does, but the code is wrong. The correct way to add a row is like this:
    //model.addRow(data);
    String[] rowData = { " ", " ", " ", " "};
    model.addRow(rowData);

  • JcomboBox + FOR - problem

    Hi,
    I try changing this code:
    ArrayList<String> tmp = new ArrayList<String>();
    tmp.add(numbertext.getText());
    for(String temp1 : tmp)
    System.out.println("a="+temp1.toString());
    <b>
    Legend:
    </b>
    numbertext is a JtextField.for JComboBox using FOR but i have error and problems.
    String[] items = {"item1", "item2", "item3"};
    jComboBox1.setModel(new DefaultComboBoxModel(items));
    int num = jComboBox1.getItemCount();
    String my = Integer.toString(num);
    for (String s : my ) {
            Object item = jComboBox1.getItemAt(num);
            System.out.println("a="+s.toString());I don;t know how to translate for JComoboBox.
    Please help

    Hmmmm,
    I try creating code which I choose in JComoboBox1 value for example Items2 and I click the button. My first value Items2 will be include in string, next I choose value items 4 in JcomboBox and the second value will be in string. Now In string I have a 2 value: items 2 and items 4 And I will have doing choose new value to infinity.
    I don't now how to create.

  • Jcombobox,JButton problem

    Hi,
    i would like my button to show a new java class,
    My button actionlistener
    select2 select = new select2();
    select.createAndShowGUI();but, i want to choose which class i will go through JComboBox.....
    Let's say my string on the JComboBox is frame1,frame2,frame3....
    how should i put it in way that....
    if frame1 is selected....
    i click the button, it will show frame1 class...
    if frame2 is selcted....
    after clicked the button, it will show frame2 class...
    Edited by: vanharu on May 27, 2008 8:38 PM

    i understand the codes u put there...
    but how do i implement it to my button action
    * @(#)select2.java
    * @author
    * @version 1.00 2008/5/28
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.BorderFactory;
    import javax.swing.border.Border;
    import javax.swing.BoxLayout;
    public class select2 extends JFrame  implements ActionListener
         public JComboBox CharList;
         public JLabel Char,title;
         public JButton Play, Preview;
        public select2()
            setTitle("Select Your Character");
            setSize(340, 400);
            getContentPane().setLayout(
                    new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
             Border raisedbevel, loweredbevel, compound;
             raisedbevel = BorderFactory.createRaisedBevelBorder();
            loweredbevel = BorderFactory.createLoweredBevelBorder();
              // Puts in array of strings to the combo box
            // Can select the arrays that is inserted in the combo box
                String hero[] = {"Naruto", "Sasuke", "Ichigo", "Ulqiourra"};
                CharList = new JComboBox(hero);
             //Shows that the combo box will start at 0,
             //which is naruto  
                CharList.setSelectedIndex(0);
                CharList.addActionListener(this);
                 //Set up the animation part
                    Char = new JLabel();
                  Char.setHorizontalAlignment(JLabel.CENTER);
                  updateLabel(hero[CharList.getSelectedIndex()]);
                  compound = BorderFactory.createCompoundBorder(raisedbevel, loweredbevel);
                  Char.setBorder(compound);
                  Char.setPreferredSize(new Dimension(320, 266));
                  //Set up button part
                  Play = new JButton("Select This Character");
                 Play.setHorizontalAlignment(4);
                 Play.setPreferredSize(new Dimension(100,40));
                 Play.addActionListener(new confirm());
                      Preview = new JButton("Preview This Character");
                      Preview.setHorizontalAlignment(4);
                      Preview.setPreferredSize(new Dimension(80, 40));
                      Preview.addActionListener(new preview());     
                      getContentPane().add(CharList);
                 CharList.setAlignmentX(Component.CENTER_ALIGNMENT);
                 getContentPane().add(Char);
                 Char.setAlignmentX(Component.CENTER_ALIGNMENT);
                 getContentPane().add(Play);
                 Play.setAlignmentX(Component.CENTER_ALIGNMENT);
                 getContentPane().add(Preview);
                  Preview.setAlignmentX(Component.CENTER_ALIGNMENT);
        public void actionPerformed(ActionEvent e)
                 JComboBox nm = (JComboBox)e.getSource();
                 String CharName = (String)nm.getSelectedItem();
                 updateLabel(CharName);
        class confirm implements ActionListener {
            public void actionPerformed(ActionEvent event)
               System.exit(0);
        class preview implements ActionListener {
            public void actionPerformed(ActionEvent event)
            //lets say, if the combobox selection is naruto...
            //then when i click this button
            //it will show naruto class
             should i put like something like
             combobox = naruto
             show naruto.class
         protected void updateLabel(String name) {
            ImageIcon icon = new ImageIcon("Resources/"+name+"Pose" + ".gif");
            Char.setIcon(icon);
            Char.setToolTipText(name);
            if (icon != null) {
                Char.setText(null);
            } else {
                Char.setText("UNDER CONSTRUCTION");
       public static void createAndShowGUI() {
            JFrame.setDefaultLookAndFeelDecorated(true);
            //Create and set up the window.
            JFrame frame = new JFrame("Choose Your Character");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
              //Display the window.
            select2 sel = new select2();
            sel.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            sel.setVisible(true);
         public static void main(String[] args) {
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
    }Edited by: vanharu on May 27, 2008 10:27 PM

  • JComboBox event problem

    Hi ,
    I have JComboBox in my application. I added action listener for this. When I set the values programmatically I don't want the code in the actionperformed to be executed. I can do it indirectly by using boolean flag for this, but I want to know is there any other (neat) way we can achieve this.
    Thanks

    You can always check to see if there is a selected index...
    myComboBox.addActionListener
         new ActionListener()
              public void actionPerformed(ActionEvent e)
                   if (((JComboBox)e.getSource()).getSelectedIndex() != -1)
                        //perform your operations here.
    );Another way to do it would be to write your own custom action listener and consume() any event that you don't want.
    Hope that helps.

  • JComboBox Visibility Problem

    Hi, I am trying to use JComboBox for selecting you race and gender in a RPG I am making, but The contents of the JComboBox will not appear in the small version (before you click the little arrow) unless you first move one of the JSliders... Could some one help me figure this out?
    //I call the class with this
         newGamePanel = new newGamePanel();
         newGamePanel.setLayout(null);
         newGamePanel.setBounds(0, 0, programWidth, programHeight);
         newGamePanel.setBackground(Color.black);
         frame.getContentPane().add(newGamePanel);
         newGamePanel.setVisible(true);
         newGamePanel.setUpAlpha();
         newGamePanel.repaint();
    //and here is my class where it all takes place...  The relivent method is setUpAlpha()
    public class newGamePanel extends JPanel//Sets up and grabs the information for the character creation
    implements ActionListener, ChangeListener
         JButton newGameOK;
         JTextField newGameName;
         JComboBox newGameRace, newGameGender;
         JSlider newGameSTR, newGameAGI, newGameVIT, newGameDEX, newGameINT, newGameLUK;
         JLabel nGameName, nGameRace, nGameGender, nGameSTR, nGameAGI, nGameVIT, nGameDEX, nGameINT, nGameLUK;
         int tempScrollA = 5, tempScrollB = 5, tempScrollC = 5, tempScrollD = 5, tempScrollE = 5, tempScrollF = 5;
         public void actionPerformed(ActionEvent e)//Action Performed Block
              if(e.getSource() == newGameOK)
                   gameState = "Story";
                   newGameGetInfo();
                   newGameStoryPanel.newGameStoryPanelInit();
         public void stateChanged(ChangeEvent e)//Scrollbar Listener Block
              if(e.getSource() == newGameSTR)
                   tempScrollA = 10 - (int)newGameSTR.getValue();
                   newGameINT.setValue(tempScrollA);
              if(e.getSource() == newGameINT)
                   tempScrollA = 10 - (int)newGameINT.getValue();
                   newGameSTR.setValue(tempScrollA);
              if(e.getSource() == newGameAGI)
                   tempScrollA = 10 - (int)newGameAGI.getValue();
                   newGameLUK.setValue(tempScrollA);
              if(e.getSource() == newGameLUK)
                   tempScrollA = 10 - (int)newGameLUK.getValue();
                   newGameAGI.setValue(tempScrollA);
              if(e.getSource() == newGameDEX)
                   tempScrollA = 10 - (int)newGameDEX.getValue();
                   newGameVIT.setValue(tempScrollA);
              if(e.getSource() == newGameVIT)
                   tempScrollA = 10 - (int)newGameVIT.getValue();
                   newGameDEX.setValue(tempScrollA);
              tempScrollA = (int)newGameSTR.getValue();
              tempScrollB = (int)newGameAGI.getValue();
              tempScrollC = (int)newGameVIT.getValue();
              tempScrollD = (int)newGameDEX.getValue();
              tempScrollE = (int)newGameINT.getValue();
              tempScrollF = (int)newGameLUK.getValue();
              nGameSTR.setText("Strength: " + tempScrollA);
              nGameAGI.setText("Agility: " + tempScrollB);
              nGameVIT.setText("Vitality: " + tempScrollC);
              nGameDEX.setText("Dexterity: " + tempScrollD);
              nGameINT.setText("Intelligence: " + tempScrollE);
              nGameLUK.setText("Luck: " + tempScrollF);
         public void setUpAlpha()//Huge block to set up Character creation screen
              int tempProgramLeft = (int)(programWidth /2) - 225;
              int tempProgramRight = (int)(programWidth /2) + 25;
              UIManager.put("Label.foreground", Color.white);
              nGameName = new JLabel("Character Name", JLabel.CENTER);
              nGameName.setBounds((int)((programWidth - 250) / 2), 35, 250, 20);
              nGameRace = new JLabel("Character Race", JLabel.CENTER);
              nGameRace.setBounds(tempProgramLeft, 135, 200, 20);
              nGameGender = new JLabel("Character Gender", JLabel.CENTER);
              nGameGender.setBounds(tempProgramRight, 135, 200, 20);
              nGameSTR = new JLabel("Strength: " + tempScrollA, JLabel.CENTER);
              nGameSTR.setBounds(tempProgramLeft, 230, 200, 20);
              nGameINT = new JLabel("Intelligence: " + tempScrollE, JLabel.CENTER);
              nGameINT.setBounds(tempProgramRight, 230, 200, 20);
              nGameVIT = new JLabel("Vitality: " + tempScrollB, JLabel.CENTER);
              nGameVIT.setBounds(tempProgramLeft, 300, 200, 20);
              nGameDEX = new JLabel("Dexterity: " + tempScrollD, JLabel.CENTER);
              nGameDEX.setBounds(tempProgramRight, 300, 200, 20);
              nGameAGI = new JLabel("Agility: " + tempScrollC, JLabel.CENTER);
              nGameAGI.setBounds(tempProgramRight, 370, 200, 20);
              nGameLUK = new JLabel("Luck: " + tempScrollF, JLabel.CENTER);
              nGameLUK.setBounds(tempProgramLeft, 370, 200, 20);
              newGameOK = new JButton("Start Game", null);
              newGameOK.setHorizontalTextPosition(AbstractButton.CENTER);
              newGameOK.setBackground(Color.black);
              newGameOK.setForeground(Color.white);
              newGameOK.setBounds((int)((programWidth - 100) / 2), 450, 100, 30);
              newGameOK.setBorder(BorderFactory.createMatteBorder(3, 3, 3, 3, Color.white));
              newGameName = new JTextField("Enter Name", 20);
              newGameName.setFont(new Font("Times New Roman", Font.BOLD, 12));
              newGameName.setForeground(Color.red);
              newGameName.setBackground(Color.black);
              newGameName.setBounds((int)((programWidth - 250) / 2), 60, 250, 25);
              newGameName.setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.white));
         //     UIManager.put("ComboBox.foreground", Color.red);
         //     UIManager.put("ComboBox.background", Color.black);
         //     UIManager.put("ComboBox.border", BorderFactory.createMatteBorder(0, 0, 0, 7, Color.white));
              String[] newGameRaceAAA = {"Human", "Elf", "Dwarf"};
              newGameRace = new JComboBox(newGameRaceAAA);
              newGameRace.setSelectedIndex(0);
              newGameRace.setBounds(tempProgramLeft, 160, 200, 20);
              newGameRace.addActionListener(this);
              String[] newGameGenderAAA = {"Male", "Female"};
              newGameGender = new JComboBox(newGameGenderAAA);
              newGameGender.setSelectedIndex(0);
              newGameGender.setBounds(tempProgramRight, 160, 200, 20);
              newGameGender.addActionListener(this);
              UIManager.put("Slider.background", Color.black);
              newGameSTR = new JSlider(JSlider.HORIZONTAL, 1, 9, 5);
              newGameAGI = new JSlider(JSlider.HORIZONTAL, 1, 9, 5);
              newGameVIT = new JSlider(JSlider.HORIZONTAL, 1, 9, 5);
              newGameDEX = new JSlider(JSlider.HORIZONTAL, 1, 9, 5);
              newGameINT = new JSlider(JSlider.HORIZONTAL, 1, 9, 5);
              newGameLUK = new JSlider(JSlider.HORIZONTAL, 1, 9, 5);
              newGameSTR.setBounds(tempProgramLeft, 250, 200, 15);
              newGameINT.setBounds(tempProgramRight, 250, 200, 15);
              newGameVIT.setBounds(tempProgramLeft, 320, 200, 15);
              newGameDEX.setBounds(tempProgramRight, 320, 200, 15);
              newGameLUK.setBounds(tempProgramLeft, 390, 200, 15);
              newGameAGI.setBounds(tempProgramRight, 390, 200, 15);
              visiblePanelChecker();
              this.add(newGameOK);
              this.add(newGameName);
              this.add(newGameRace);
              this.add(newGameGender);
              this.add(newGameSTR);
              this.add(newGameAGI);
              this.add(newGameVIT);
              this.add(newGameDEX);
              this.add(newGameINT);
              this.add(newGameLUK);
              this.add(nGameName);
              this.add(nGameRace);
              this.add(nGameGender);
              this.add(nGameSTR);
              this.add(nGameAGI);
              this.add(nGameVIT);
              this.add(nGameDEX);
              this.add(nGameINT);
              this.add(nGameLUK);
              newGameOK.addActionListener(this);
              newGameSTR.addChangeListener(this);
              newGameAGI.addChangeListener(this);
              newGameVIT.addChangeListener(this);
              newGameDEX.addChangeListener(this);
              newGameINT.addChangeListener(this);
              newGameLUK.addChangeListener(this);
              newGameOK.setVisible(true);
              newGameName.setVisible(true);
              newGameRace.setVisible(true);
              newGameGender.setVisible(true);
              newGameSTR.setVisible(true);
              newGameAGI.setVisible(true);
              newGameVIT.setVisible(true);
              newGameDEX.setVisible(true);
              newGameINT.setVisible(true);
              newGameLUK.setVisible(true);
              nGameName.setVisible(true);
              nGameRace.setVisible(true);
              nGameGender.setVisible(true);
              nGameSTR.setVisible(true);
              nGameAGI.setVisible(true);
              nGameVIT.setVisible(true);
              nGameDEX.setVisible(true);
              nGameINT.setVisible(true);
              nGameLUK.setVisible(true);
              repaint();
         public void newGameGetInfo()//Grabs the information from the items in the New Game
              hero = new Chara();
              hero.name = newGameName.getText();
              hero.name = hero.name.trim();
              if(hero.name.length() > 10){hero.name = hero.name.substring(0, 10);}
              hero.race = (String)newGameRace.getSelectedItem();
              hero.gender = (String)newGameGender.getSelectedItem();
              for(int i = 0; i < 2; i ++)
                   hero.strength[i] = tempScrollA;
                   hero.agility[i] = tempScrollB;
                   hero.vitality[i] = tempScrollC;
                   hero.dexterity[i] = tempScrollD;
                   hero.intelligence[i] = tempScrollE;
                   hero.luck[i] = tempScrollF;
              if(hero.race == "Human")
                   hero.strength[2] = 1;
                   hero.agility[2] = 1;
                   hero.vitality[2] = 1;
                   hero.dexterity[2] = 1;
                   hero.intelligence[2] = 1;
                   hero.luck[2] = 1;
              if(hero.race == "Elf")
                   hero.strength[2] = 0;
                   hero.agility[2] = 2;
                   hero.vitality[2] = 0;
                   hero.dexterity[2] = 2;
                   hero.intelligence[2] = 2;
                   hero.luck[2] = 0;
              if(hero.race == "Dwarf")
                   hero.strength[2] = 3;
                   hero.agility[2] = 0;
                   hero.vitality[2] = 2;
                   hero.dexterity[2] = 0;
                   hero.intelligence[2] = 0;
                   hero.luck[2] = 1;
              int hp[] = new int[3];//Min/Max HP
              int mp[] = new int[3];//Min/Max SP
              hero.level = 1;
              hero.job = "Novice";
              hero.status = "Normal";
              hero.property = "Normal";
              for(int i = 0; i < hero.location.length; i++)
                   for(int a = 0; a < hero.location.length; a++)
                        hero.location[i][a] = 320;
              menuActivate();
              resetNewGameStuff();
              visiblePanelChecker();
         public void resetNewGameStuff()//Resets the values in the items for the New Game
              newGameName = null;
              newGameRace = newGameGender = null;
              newGameSTR = newGameAGI = newGameVIT = newGameDEX = newGameINT = newGameLUK = null;
              nGameSTR = nGameAGI = nGameVIT = nGameDEX = nGameINT = nGameLUK = null;

    Is there anybody who can help me? I need Help guys......

  • JComboBox Dropping Problem

    Hi, I have a JComboBox in a table cell with all the Item I need. But the problem is when I click on JComboBox, dropdown menu pops up and immediately hides automatically. And cannot allow me to choose anything.
    Any suggestions plz.
    Thanks

    You've got a coding problem, so read this section from the Swing tutorial on [url http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html]How to Use Combo Boxes for example on how to do this correctly.

  • JComboBox MouseListener Problem

    Hi!
    I have problem in getting mouseEntered event from a JComboBox. I have registered a MouseListener with it but it doesn't fire any mouseEvent. Anyone has any idea how to get the mouseEntered Event fired from a JComboBox??
    Thanks!!

    Even I, have a similar problem. My obejective is to display the tooltip, When I move the mouse over every individual item in the combo box. The combo basically has a JList. So, I overrided the getListCellRenderer(...) method. It is not displaying the toolTip when the combo initially has no selectedItem. If there is a selected item, the first time itslef, it displays the toolTip. If theres no selectedItem, it displays the toolTip when I move the mouse out of the combo(when the combo is expanded). Tried all possible combinations... but doesnt work. Have set the toolTip with setToolTipText() method... and when I print the toolTip with getToolTipText() method. It prints correctly, but isnt getting displayed.. :-(

  • JComboBox Editing problem

    hi all ,
    I have problem with JComboBox
    like this :
    JComboBox comTech = new JComboBox();
    comTech.addItem(" ");
    comTech.addItem("one");
    comTech.addItem("two");
    the problem is I want first( comTech.addItem(" ");) item is Editable remaing are uneditable
    I am not getting any solution if anyone knows please send the solution
    thanks

    You missunderstand the use of JComboBox. A JComboBox is used to allow the user to selection from a list of items.
    An uneditable combox allows the user to select an item from the list.
    An editable combo box allows the user to select an item from the list or to enter there own value. It does not allow you to change the value of the entries in the list.
    See this section from the Swing tutorial on "How to Use Combo Boxes":
    http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html

  • 2 JComboBox  sync problem

    Hi, im getting crazy with this error. I have two different JComboBox with two differents DefaultComboBoxModel.
    The first shows a list of files.
    The second shows a data list from the selected file in the first.
    When i select a different file in the first combo, i want to change the data list in the second combo. So i call the removeAllElements method in the DefaultComboBoxModel, but i dont know why, then the second combo code is executed too (it shouldnt) and i get an error.
    The code is something like this:
    cmb1 is a jcombobox linked to dcbm1, which is a defaultcomboboxmodel
    cmb2 is a jcombobox linked to dcbm2, which is a defaultcomboboxmodel
    MyObject is a customized class which has two fields: a Vector and a String. There is a Vector of MyObject, where is load the file data.
      void cmb1_actionPerformed(ActionEvent e){
        dcbm2.removeAllElements();
        // Load the file
        // Get data load on vector (class Vector)
        // Then, send data from vector to 2nd combomodel:
        for (int i=0; i<vector.size(); i++){
          mo = (MyObject)vector.get(i);
          dcbm2.addElement(mo.getString());
      void cmb2_actionPerformed(ActionEvent e){
        dlm.clear();                                                    // ListModel which i use to show data
        int x = cmb2.getSelectedIndex();
        m = (MyObject)vector.get(x);                       // This line throws the error (ArrayOutOfBounds). x=-1
        vector2 = m.getVector();
        for (int i=0; i<vector2.size(); i++){
          dlm.addElement((vector2.getString()
      }So thats my problem. When i select an item in the 1st combo, the 2nd combo code is executed too, throwing an ArrayIndexOutOfBounds because there is no item selected

    as I see, in this listing, you did not try using what I told you before, try using this:
    public void actionPerformed(ActionEvent e) {
         Object obj = e.getSource();
         if (obj == cmbFiles) {
              parser = new MyXMLParser((String) dcbmFiles.getSelectedItem());
              try {
                   carrera = parser.read();
              } catch (Exception z) {
                   z.printStackTrace();
              cursos = carrera.getCursos();
              for (int i = 0; i < cursos.size(); i++) {
                   cur = (Curso) cursos.get(i);
                   dcbmCursos.addElement(cur.getCurso());
         } else if (obj == cmbCursos) {
              dlmAsignaturas.clear();
              int x = cmbCursos.getSelectedIndex();
              cur = (Curso) cursos.get(x);
              asignaturas = cur.getAsignaturas();
              for (int i = 0; i < asignaturas.size(); i++) {
                   dlmAsignaturas.addElement(
                        ((Asignatura) asignaturas.get(i)).getId()
                             + ((Asignatura) asignaturas.get(i)).getGrupo().toLowerCase());
    }

  • URGENT. JCombobox display problem PLEASE HELP.

    I have a jcombobox that i am populating with data. What I want to be able to do is this: When the user selects an item from the popup, I want to display the text in the combobox as abbreviated. Example:
    AL - Alabama ( this would be an option in the popup list)
    if I select this option i want the combo box only to display AL
    I've tried many methods to get this work work but nothing seems to be working. Can someone please help

    never say die,
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    public class DoTheComboBoxThing extends JFrame {
          public DoTheComboBoxThing() {
          initCompponents();
          public void initCompponents() {
          jcb1 = new JComboBox(states);
          jcb2 = new JComboBox(state_ab);
          jp = new JPanel();
          jp.add(jcb1);
          jp.add(jcb2);
          getContentPane().add(jp, BorderLayout.CENTER);
          addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent we) {
                   exitForm(we);
          jcb1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent ae) {
                   jcb1ActionPerformed(ae);
          pack();
          public void exitForm(WindowEvent we) {
          System.exit(0);
          public void jcb1ActionPerformed(ActionEvent ae) {
          jcb2.setSelectedIndex(jcb1.getSelectedIndex());
          jcb1.setEditable( true );
          StringTokenizer st = new StringTokenizer( (String) jcb1.getSelectedItem(), " " );
          ( (JTextField) jcb1.getEditor().getEditorComponent() ).setEditable( true );
          ( (JTextField) jcb1.getEditor().getEditorComponent() ).setText( st.nextToken() );
          ( (JTextField) jcb1.getEditor().getEditorComponent() ).setEditable( false );
          public static void main(String [] args) {
          DoTheComboBoxThing doThe = new DoTheComboBoxThing();
          doThe.show();
          JPanel jp;
          JComboBox jcb1;
          JComboBox jcb2;
          String[] states = {"AL - Alabama", "CT - Connecticut", "NY - New York", "SATW - Sleeping at the wheel"};
          String[] state_ab = {"AL","CT","NY","SATW"};
          }

  • JTable with JComboBox/JSpinner problem

    The following code has a JTable with 2 columns.The lst column has JComboBoxes, the 2nd column has JSpinners.I want to set the spinner range of values based on the selection of JComboBox. The JComboBox selections are "small" and "large". For "small" the spinner should range from 0..49, for "large" from 50..99. When a selection is made, MyTable.itemStateChanged() is called, which in turn calls SpinnerEditor.setValueRange(). This sets an array with the desired values and then sets the model with this array. However, it sets the range not only for the row in which the combo box was clicked, but all rows.
    So in MyTable.setCellComponents(), there is this:
    spinnerEditor = new SpinnerEditor(this, defaultTableModel);
    modelColumn.setCellEditor(spinnerEditor);
    If the table has n rows, are n SpinnerEditors created, or just 1?
    If 1, do n need to be created and if so, how?
    public class MyTable extends JTable implements ItemListener {
         private DefaultTableModel defaultTableModel;
         private Vector<Object> columnNameVector;
         private JComboBox jComboBox;
         private SpinnerEditor spinnerEditor;
         private final int COMBO_BOX_COLUMN = 0;
         final static int SPINNER_COLUMN = 1;
         public static String SMALL = "Small";
         public String LARGE = "Large";
         private final String[] SMALL_LARGE = {
                   SMALL,
                   LARGE };
         public MyTable(String name, Object[][] variableNameArray, Object[] columnNameArray) {
              columnNameVector = new Vector<Object>();
              // need column names in order to make copy of table model
              for (Object object : columnNameArray) {
                   columnNameVector.add(object);
              defaultTableModel = new DefaultTableModel(variableNameArray, columnNameArray);
              this.setModel(defaultTableModel)     ;
              setCellComponents();
              setListeners();
         private void setCellComponents() {
              // combo box column -----------------------------------------------
              TableColumn modelColumn = this.getColumnModel().getColumn(COMBO_BOX_COLUMN);
              jComboBox = new JComboBox(SMALL_LARGE);
              // set default values
              for (int row = 0; row < defaultTableModel.getRowCount(); row++) {
                   defaultTableModel.setValueAt(SMALL_LARGE[0], row, COMBO_BOX_COLUMN);
              modelColumn.setCellEditor(new DefaultCellEditor(jComboBox));
              DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
              renderer.setToolTipText("Click for small/large"); // tooltip
              modelColumn.setCellRenderer(renderer);
              // index spinner column ------------------------------------------------------------
              modelColumn = this.getColumnModel().getColumn(SPINNER_COLUMN);
              spinnerEditor = new SpinnerEditor(this, defaultTableModel);
              modelColumn.setCellEditor(spinnerEditor);
              renderer = new DefaultTableCellRenderer();
              renderer.setToolTipText("Click for index value"); // tooltip
              modelColumn.setCellRenderer(renderer);
         private void setListeners() {
              jComboBox.addItemListener(this);
         @Override
         public void itemStateChanged(ItemEvent event) {
              // set spinner values depending on small or large
              String smallOrLarge = (String)event.getItem();
              if (this.getEditingRow() != -1 && this.getEditingColumn() != -1) {
                   spinnerEditor.setValueRange(smallOrLarge);
         public static void main(String[] args) {
              try{
                   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
              catch (Exception e){
                   e.printStackTrace();
              String[] columnNameArray = {"JComboBox", "JSpinner"};
              Object[][]  dataArray = {
                        {"", "0"},
                        {"", "0"},
                        {"", "0"},
              final MyTable myTable = new MyTable("called from main", dataArray, columnNameArray);
              final JFrame frame = new JFrame();
              frame.getContentPane().add(new JScrollPane(myTable));
              frame.setTitle("My Table");
              frame.setPreferredSize(new Dimension(200, 125));
              frame.addWindowListener(new WindowAdapter(){
                   @Override
                   public void windowClosing(WindowEvent e) {
              frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              frame.setLocation(800, 400);
              frame.pack();
              frame.setVisible(true);
    public class SpinnerEditor extends AbstractCellEditor implements TableCellEditor {
         private JComponent parent;
         private DefaultTableModel defaultTableModel;
         private final JSpinner spinner = new JSpinner();
         private String[] spinValues;
         private int row;
         private int column;
         public SpinnerEditor(JTable parent, DefaultTableModel defaultTableModel ) {
              super();
              this.parent = parent;
              this.defaultTableModel = defaultTableModel;
              setValueRange(MyTable.SMALL);
              // update every time spinner is incremented or decremented
              spinner.addChangeListener(new ChangeListener(){
                   public void stateChanged(ChangeEvent e) {
                        String value = (String) spinner.getValue();
                        System.out.println ("SpinnerEditor.stateChanged(): " + value);
                        setValue(value);
         private void setValue(String value) {
              // save to equation string
              System.out.println ("SpinnerEditor.setValue(): " + value + " at (" + row + ", " + MyTable.SPINNER_COLUMN + ")");
              ((JTable) parent).setValueAt(spinner.getValue(), this.row, this.column);
         @Override
         public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)      {
              System.out.println ("SpinnerEditor.getTableCellEditorComponent(): row: " + row + "\tcolumn: " + column);
              System.out.println ("SpinnerEditor.getTableCellEditorComponent(): value: " + value);
              this.row = row;
              this.column = column;
              return spinner;
         @Override
         public boolean isCellEditable(EventObject evt) {
              return true;
         // Returns the spinners current value.
         @Override
         public Object getCellEditorValue() {
              return spinner.getValue();
         @Override
         public boolean stopCellEditing() {
              System.out.println("SpinnerEditor.stopCellEditing(): spinner: " + spinner.getValue() + " at (" + this.row + ", " + this.column + ")");
              ((JTable) parent).setValueAt(spinner.getValue(), this.row, this.column);
              return true;
         public void setValueRange(String smallOrLarge) {
              System.out.println ("SpinnerEditor.setValueRange for " + smallOrLarge);
              final int ARRAY_SIZE = 50;
              if (MyTable.SMALL.equals(smallOrLarge)) {
                   final int MIN_SPIN_VALUE = 0;               
                   final int MAX_SPIN_VALUE = 49;
                   //System.out.println ("SpinnerEditor.setValueRange(): [" + MIN_SPIN_VALUE + ".." +  MAX_SPIN_VALUE + "]");
                   spinValues = new String[ARRAY_SIZE];
                   for (int i = MIN_SPIN_VALUE; i <= MAX_SPIN_VALUE; i++) {
                        spinValues[i] = new String(Integer.toString(i));
              else { // large
                   final int MIN_SPIN_VALUE = 50;               
                   final int MAX_SPIN_VALUE = 99;
                   //System.out.println ("SpinnerEditor.setValueRange(): [" + MIN_SPIN_VALUE + ".." +  MAX_SPIN_VALUE + "]");
                   spinValues = new String[ARRAY_SIZE];
                   for (int i = 0; i <ARRAY_SIZE; i++) {
                        spinValues[i] = new String(Integer.toString(MIN_SPIN_VALUE + i));
                   //for (int i = 0; i <ARRAY_SIZE; i++) {
                   //     System.out.println ("spinValues[" + i + "] = " + spinValues);
              System.out.println ("SpinnerEditor.setValueRange(): [" + spinValues[0] + ".." + spinValues[ARRAY_SIZE-1] + "]");
              // set model
              spinner.setModel(new SpinnerListModel(java.util.Arrays.asList(spinValues)));

    However, it sets the range not only for the row in which the combo box was clicked, but all rows. Yes, because a single editor is used by the column.
    One solution is to create two editors, then you override the getCellEditor(...) method to return the appropriated editor. Something like:
    If (column == ?)
        if (smallOrLarge)
          return the small or large spinner editor
        else
           return the large spinner editor
    else
        return super.getCellEditor(...);

Maybe you are looking for

  • USB Hub does not work on boot up, but OK after dis/reconnecting

    I just set up a D-Link USB 7-Port 2.0 Hub. I use a Mac G5 2.7Ghz which has USB 2.0. I've got the hub connected to one of the USB ports on the rear of the G5. Connected to the hub are my keyboard (Apple's older black and grey model), trackball, iPod d

  • For update of clause.

    Hi All, Whenever i am compiling the form in 10g builder it is giving the following error. error 1705 table specified by a cursor not updatable if cursor specification has union or order_by For ex i am writing like this declare cursor c1 is select * f

  • What's with the "themes"?  I don't want any of those "themes"!

    if i've got just one film, i'd like it to open once the disk is inserted. if there is more than one film, i'd be happy with the titles on a black page. do i have to use the "themes" offered by idvd?

  • Email messages not available on server - N900

    I setup gmail on my N900 but cannot read the messages. An error message reads that "message could not be found on server". Pliz assist

  • Unable to access Photo Stream from email invite

    I have been invited to a photo stream by a friend via an email to my Gmail account. When I click the 'Join this photo stream' link it takes me to a page telling me that I need OSX 10.8.2, iPhoto 9.4, be logged in to iCloud and press the 'Join this ph