Getting the index of the button pressed in an array of buttons

Hi,
I have an array of buttons.
JButton buttons[];
buttons = new JButton[18];
for(int idx = 0; idx<buttons.length; idx++)
buttons[idx] = new JButton("changing button name");
buttons[idx].addActionListener(this);
locationButtonGrid.add(buttons[idx]);
locationButtonGrid.validate();
I need to know the index of the button pressed. I can't work from the string that is to be sent to the actionListener as this is going to be coming from a database and changing all the time. The idea behind it is that I am narrowing a list of entries down in a database by dividing it into 18 different sections, then dividing that section into 18 different sections and so on.
I need to know which of the 18 buttons was pressed. Is this possible?
Please let it be so!
Cheers,
elmicko

Try this (my code is in bold):
JButton buttons[];
buttons = new JButton[18];
for(int idx = 0; idx<buttons.length; idx++)
buttons[idx] = new JButton("changing button name");
buttons[idx].addActionListener(this);
buttons[idx].setID( String.valueOf( idx ) );
locationButtonGrid.add(buttons[idx]);
locationButtonGrid.validate();
In the listener (assuming event is evt):
buttons[ Integer.parseInt(evt.getSource().getID()) ]
or
int idx = Integer.parseInt(evt.getSource().getID());
buttons[idx]
finally, if you want to modify the button when you get the event, you can just call the JButton methods by casting the source to a JButton and working from there.

Similar Messages

  • How to get the index of the word at current cursor position in the word?

    Dear All
    I am implementing a spell checker of my native language in Word. Whenever I run spell checker it start from the first word. How can I make it to start from the current cursor position? How can I get the index of the word at the current cursor position?
    Thanks in advance.
    Dharam Veer Sharma

    hi Dharam Veer Sharma,
    Thanks for sharing the solultion with us.
    It is helpful for others who have the same issue. And if you have any Office developing issue, please feel free to open a new thread.
    Have a nice day.
    Regards & Fei
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to get currect index of the cell on which user actually clicked.

    Hi All,
    In my widget I have displayed data in tabular format  Now I am trying to send the value of the cell on which user has actually clicked. I am not using any standard table control. using standard text() elemnt I am displaying my data in tabular format. I am trying to pass the index of the cell onMouseDown event. I am using widget version 4.5. Please help.
    Will reward max point on helpful answer.
    Thanks and Regards
    Avijit

    hi Avijit,
    If you are using Table control then you can try for the following :
    getCell(rowNo,columnNo) - Gets the data from the cell located in the columnNo column, in the rowNo row.
    getInputValue(rowNo,columnNo,value) - Returns the value from the cell located in the columnNo column, in the rowNo row.
    thanks
    Jaideep Srinivasan

  • How to get the index of the error record when uploaded using standard LSMW

    Hi Experts,
    When uploading data using lsmw standard batch input method which creates an error session if any errors,how can we able to find the index of the error record
    eg: If 3rd record in input file is incorrect then error session is getting created with the error and index as 1.But I want to know that 3rd record in my input file is incorrect.
    Please help me out.

    Srinivas,
    In global data, i've written like this.
    TYPES: BEGIN OF TYPE_ERROR,
                 INDEX TYPE I,
                 END OF TYPE_ERROR.
    DATA: GT_ERROR TYPE TABLE OF TYPE_ERROR,
               GS_ERROR TYPE TYPE_ERROR,
               GV_TOTAL_COUNT TYPE I, GV_INDEX TYPE I,
               GV_STRING TYPE STRING,
              GV_FILE TYPE STRING VALUE '/usr/sap/interfaces/LSMW/Asseterror
    In Begin of transaction,
    GV_TOTAL_COUNT = GV_TOTAL_COUNT + 1.
    In End of processing,
    OPEN DATASET GV_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    IF SY-SUBRC = 0.
    CLEAR GS_ERROR.
    LOOP AT GT_ERROR INTO GS_ERROR.
    CONCATENATE 'INDEX OF THE ERROR RECORD IS:' GS_ERROR INTO GV_STRING.
    TRANSFER GV_STRING TO GV_FILE.
    CLEAR: GV_STRING, GS_ERROR.
    ENDLOOP.
    ENDIF.
    How and where will I be assigning error count and append it to the internal table.
    Please help me out.

  • Get the index of the current line in use

    Dear All,
    Well how can i get the index of the current line in use?
    this the code I am using :
    Dim i As Integer
    Set oBatchForm = SBO_Application.Forms.GetForm(Form_Id, 1)
    Set oMainMatrix = oBatchForm.Items.Item(Matrix_Id).Specific
    For i = 1 To oMainMatrix.VisualRowCount
        If oMainMatrix.IsRowSelected(i) = True Then
           GB_SelRow = i
            Exit For
        End If
    Next
    Exit Sub
    This code is not working when there is a line in the document type texte.
    please advice.

    Hi Mary,
    this is code in C#.NET which is working fine, try to do same in your code:
    for(int irow=1; irow<=oMatrix.RowCount; irow++)
         if(oMatrix.IsRowSelected(irow))
         SelectRow = irow;
                    break;
    Hope it helps.

  • How to get the index of the minimize point

    Need to get the index of the minimize point, marked as red cycle in the attached word file.
    It is a collected data from different sample devices, so the curve may change a bit each time. But the overall profile is the same, just 2 main peaks.
    I tried to detect the Y difference to see when the difference values change from negative to positive.
    But, there are noise as tiny peak when zoom in, shown in word file. Then tried to use median filter to make it smooth. (Maybe better method should be used.)
    But there are still some bigger regional peak. Any suggestion?
    Is there any labview function or better algorithm can make it. Many thanks for your help.
    Solved!
    Go to Solution.
    Attachments:
    Curve shots(zoom in).doc ‏294 KB
    Sample Data 1.vi ‏22 KB
    Sample Data 2.vi ‏16 KB

    A trick I often use is to sample the data with a much higher speed than needed. Then I apply some simple averaging methods or and median filter. After that I downsample the signal to a adequate rate by averaging x samples. This have been a saver for me more than once. How successful it is depends of noise character type. It just a hint as it may not be applicable in your application 
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • Help to search for a string value and return the index in the arraylist

    Hello,
    I just start java programming for the last three weeks and I cannot find a solution for this problem. I have the following List with string and integer value as shown below:
    List<Empl> list= new ArrayList<Empl>();
         list.add(new Empl(1,"Jim", "Balu",88);
         list.add(new Empl(3,"Bob", "Howards",2);
         list.add(new Empl(2,"Chris", "Hup",8);
    I have no problem of sorting this arraylist either by firstname or lastname. However, I cannot think of a way to search for a firstname or lastname and returing the whole row. I do not want to use index since I am asking user to enter the name to search. Here is my code to search for an empl based on index.
    System.out.print("Please enter index to search or (q)uit: ");
              String ans = sc.next();
              System.out.println();
              int ians = Integer(ans);
              if (ans.equalsIgnoreCase("q"))
                        choice = "n";
              else
              System.out.println("index " + list.get(ians)); //this will print out the whole row based on the index
    Since the user will never seen the contents of the arraylist, is there a way that I can search by string last/first name and will get the index location in int if the result is met?
    Please advice and thank you.
    Bob.

    user11191663 wrote:
    Since the user will never seen the contents of the arraylist, is there a way that I can search by string last/first name and will get the index location in int if the result is met?Another possibility is to set up an ArrayList for each thing you want to search on and then every time you add an employee, add the piece of data you want as well, viz:
    Empl e = new Empl(1,"Jim", "Balu",88);
    list.add(e);
    firstNames.add(e.firstName());As long as you always add them in the same order, the indexes will match, so you could do something like
    ians = firstNames.indexOf(nameToFind);to return the index of the name, if it's there (if not, it will return -1).
    I wouldn't recommend this as standard practise, but it should be OK for the level you're at.
    NOTE: indexOf() returns the index of the FIRST matching item. You may want to think about what you want to do if there are more than 1.
    Winston

  • How to delete the index for the business object BUS0033

    Hi to all experts,
    I'm applying note 1349496 the error here is no records with F4 help for the funds center .
    solution from the note
    Implement the attached program corrections. Then, in the transaction, delete the index for the business object BUS0033, reactivate it, and start the indexing in the indexing mode "Full". The system then displays the data correctly in the F4 search help.
    how to do the second part i have already applied the note .

    any help

  • I need help with event structure. I am trying to feed the index of the array, the index can vary from 0 to 7. Based on the logic ouput of a comparison, the index buffer should increment ?

    I need help with event structure.
    I am trying to feed the index of the array, the index number can vary from 0 to 7.
    Based on the logic ouput of a comparison, the index buffer should increment
    or decrement every time the output of comparsion changes(event change). I guess I need to use event structure?
    (My event code doesn't execute when there is an  event at its input /comparator changes its boolean state.
    Anyone coded on similar lines? Any ideas appreciated.
    Thanks in advance!

    You don't need an Event Structure, a simple State Machine would be more appropriate.
    There are many examples of State Machines within this forum.
    RayR

  • Is there a way to remove the index from the XML output?

    Hi,
    It is easy to remove the index from the WebHelp output.
    We also want to remove it from the XML output.
    How do I do that?
    Thanks,
    Rakefet

    @Jeff: In the Single Source Layouts recipe box is a layout for XML. Although, I'm really not sure why folks would use it, other than to possibly export the project data to another system of some sort.
    @Rakefet: One thought is to try creating a new blank Index. Then choose the empty Index when you use XML Output.
    Cheers... Rick

  • Errors in the OLAP storage engine: An error occurred while processing the indexes for the partition of the measure group of the cube from the database.

    Errors in the OLAP storage engine: An error occurred while processing the indexes for the partition of the measure group of the cube from the database.
    I have dropped and recreated a fact table to refresh the data as the table is having identity columns. So not able to directly insert data. After that cube is throwing above error.
    Please suggest.

    Hi Md,
    It hard to analyse the issue base on the limited information, Are there any error message on the log? Under C:\Program Files\Microsoft SQL Server\MSAS11.\OLAP\Log (this could be different for your server), there are 3 log files that are generated:
    msmdrrv.log
    FlightRecorderCurrent.trc
    FightRecorderBack.trc
    The msmdrrv.log simply points to the other two logs. There might be some detail information for this error. Please provide us the detail information about it, so that we can make further analysis.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Excluding the index from the page numbers

    Hi,
    is it possible to exclude the index from the page numbers? My index is 5 pages long and I want the first page of the first chapter to start at page 1, not on page 6.
    Any hint? Anything to do with sections?
    Thanks!

    Solved, thanks to this topic:
    http://discussions.apple.com/thread.jspa?threadID=2046762&tstart=0

  • How to get the index of the clicked button on TOOLBARBUTTONCHOICE

    Hello Experts,
       I have used toolbarbuttonchoice and created the dropdown list of the buttons dynamically. now when any of the button is clicked i need to get the reference of the button to call appropriate code in the action, but i am unable to get the either the reference or index of the clicked button.
    Please help.
    Regards,
    Kinshuk

    Hi Sascha,
      My code goes this way
      data:
        lr_btn_ch   type ref to if_wd_view_element,
        lr_toolbar_btn_choice type ref to cl_wd_toolbar_btn_choice,
        lr_row_data           type ref to cl_wd_row_data,
        item                  type string,
        action                type string.
    CALL METHOD view->get_element
      EXPORTING
        id      = 'BTNCH'   " button choice Element in layout
      receiving
        element = lr_btn_ch
    lr_toolbar_btn_choice ?= lr_btn_ch.
    DATA:  lt_items      type string_table,
        lt_actions    type string_table.
    loop at lt_dyntab into ls_dyntab.
      append ls_dyntab-name to lt_items.
    append 'ONBTNCH' to lt_actions.
    endloop. 
    i get the data in the table lt_dyntab from API not in context
      loop at Lt_items into item.
        read table Lt_actions index sy-tabix into action.
        create_choice_item( i_toolbar_btn_choice = lr_toolbar_btn_choice i_item = item i_action = action i_view = VIEW ).
      endloop.
    create_choice_item creates the menu item for the button choice..
    My question is where should i call the map_on_action method. and how do i retrieve the index or reference in ONBTNCH method.
    please elaborate.
    Regards,
    Kinshuk

  • How can I get the index of the selected row, ALV

    In alv I need to get the selected row id and then calling a screen to show the detailed infomation on this row and providing the ability to update the row.
    I know how to do but do not know how to get the selected index of the alv grid.
    If it was desired based on just double click, it was ok but I have to provide a button and when it is clicked the detailed screen will come with the selected row details.
    Thanks everyone.
    Deniz.

    Hi Deniz,
    While defining the internal table which u pass in ALV_GRID function module, define a field (suppose CHECK type c) in the structure of that internal table.
    and while defining field layout, pass the value 'CHECK' to the field BOX_NAME of the layout.
    Now, when you execute the report, a selection box will be displayed infront of every record. If you select that record and press the button on application tool bar, the field 'CHECK' in the internal table will be having the value 'X'... By looping throught this internal table where check = 'X', you can achieve your functionality.
    Example:
         Structure for output details
    TYPES: BEGIN OF GS_OUTPUT.
            INCLUDE STRUCTURE ZAS_WATER_QLTY_REP.
    TYPES: CHECK(1) TYPE C,
           END OF GS_OUTPUT.
        Internal    table for output details
    DATA: GT_OUTPUT   TYPE STANDARD TABLE OF GS_OUTPUT.
    Before calling the function module to display ALV
    grid, define a layout usine
    Local workarea
      DATA: LW_LAYOUT  TYPE SLIS_LAYOUT_ALV.
    Local constants
      CONSTANTS: LC_UFORM  TYPE SLIS_FORMNAME
                        VALUE 'ALV_USER_COMMAND'.
    LW_LAYOUT-BOX_FIELDNAME = 'CHECK'.    "Field for checkbox
    This function module outputs an internal table with whatever
    structure in the form of a formatted single- order multi-line list
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM       = LV_REPID
                I_CALLBACK_PF_STATUS_SET = G_FORM_SET_PF_STAT
                I_CALLBACK_USER_COMMAND  = LC_UFORM
                I_STRUCTURE_NAME         = LV_ZAS_WATER_QLTY_REP
                IS_LAYOUT                = LW_LAYOUT
                IT_FIELDCAT              = G_FIELDCAT_TAB[]
                I_DEFAULT                = GC_X
                I_SAVE                   = LC_A
                IS_VARIANT               = G_VARIANT
                IT_EVENTS                = G_EVENTS_TAB[]
                IT_EVENT_EXIT            = G_EVENT_EXIT_TAB[]
                IS_PRINT                 = G_PRINT
                I_SCREEN_START_COLUMN    = G_SCREEN_START_COLUMN
                I_SCREEN_START_LINE      = G_SCREEN_START_LINE
                I_SCREEN_END_COLUMN      = G_SCREEN_END_COLUMN
                I_SCREEN_END_LINE        = G_SCREEN_END_LINE
           TABLES
                T_OUTTAB                 = GT_OUTPUT
           EXCEPTIONS
                PROGRAM_ERROR            = 1
                OTHERS                   = 2.
    and in the form alv_user_command
    FORM ALV_USER_COMMAND USING UCOMM SELLINE TYPE SLIS_SELFIELD.
    case ucomm.
    Lets hope that the user command of the push button in * PUSH
    when 'PUSH'.
    loop at gt_output where check = 'X'.
    You can write your code here...
    endloop.
    endcase.
    ENDFORM.
    Hope this helps...
    Best Regards,
    Phani.
    Message was edited by:
            Sivapuram Phani Kumar

  • Getting the index to the first row of an Internal table

    Hi,
            Assume that i have inserted five rows(fiiling contents for some fields) in an ITAB using Append statement.. Now if i want to fill the content for the remaining field from the first row , then how will i get it back to first row, If i still use Append it starts inserting from the 6th row, Instead of 6th row i want it from first row... Plss Help!!!!!!
    Thanks In Advance,
    Sanu

    lets say itab contains fields as f1,f2,f3,f4.
    one method is :
    LOOP AT itab into is.
      if sy-tabix = 1.
        is-f2 = 'asdasd'.
        is-f3 = 'gggg'.
        is-f4 = 'kjhjk'.
        modify itab from is.
        exit. " to come out of loop.
      endif.   
    ENDLOOP.
    another method is:
    clear is.
    read table itab into is INDEX 1.
    IF sy-subrc = 0.
      is-f2 = 'asdasd'.
        is-f3 = 'gggg'.
        is-f4 = 'kjhjk'.
      MODIFY itab from is INDEX 1. 
    ENDIF.

Maybe you are looking for