Firing event when pressing table cell

Hi,
Is it possible firing an event when double click the web dynpro table cell?
Fired event must be called with parameter with value inside cell.
Is it possible?
Thanks.

Hi
What TablecelllEdito  you want to use here. If it is LinkToAction then map the parameter with its action.
Code for this is
wdContext.nodeTestNode().setSelected(i, true);
//Here i is the parameter of type Node Element.
Best Regards
Satish Kumar

Similar Messages

  • RAISING AN EVENT WHEN DATABASE TABLE UPDATES

    hi all,
             i want to raise an event when database table updates.For eg : if a price of a material has been changed then i have to raise an event and run the abap program in back ground.i know transaction SM62 to create event, i dont know about transaction SM64. please give me the procedure how to solve this problem. i dont know work flow. please give me a sample code how to raise event.
    thanka and regards
    suresh

    Hi Suresh
    It is important to understand that the SAP architecture abstracts the database from the application.
    I think that you should look for ways that the application triggers an event when an update has taken place, rather than the DB.
    Two ways of doing this that spring to mind are change pointers (for the ALE interface, see menu SALE) and Business Transaction Events (various things including CRM integration, see menu FIBF).
    The latter works very well for sending prices to CRM when they change. I am more familiar with this than ALE so I will discuss it.
    If you go to menu FIBF and then follow menu path Environment -> Info System (P/S), and then run the report for event 00503301, you can find documentation and a sample function module that you can copy.
    Once you register your new function module in the event tables then it will be called when prices are changed.
    Cheers
    Dom

  • Help: Jbo Exception non blocking when using table cell renderer?

    Hi,
    JClient 9.5.2.
    When using Table Cell Renderer on an table cell attribute that is defined mandatory and activating the insert button, the (oracle.jbo.AttrValException) JBO-27014 exception is caught but it is not blocking and a new row is still inserted.
    The JClient component demo, table attribute list, has the same behaviour.
    You can add multiple rows even if not all required attributes have been documented.
    Can a Swing specialist help me on this one?
    Example of Table Cell Renderer:
    public class TableBasicStatusRenderer extends DefaultTableCellRenderer
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
    int row, int column)
    JLabel lb = new JLabel((String) StaticData.getStatusName(value)); // retrieves label from Map
    return lb;
    Regards
    Frederic

    Hi,
    I found something interesting, it could be a WORKAROUND!
    I noticed that in another detail panel with table layout the JBO exception was blocking and adding another row before completing the row was NOT possible.
    In the create method of the entity object of the displayed View Object I iterate over the detail row iterator to retrieve a maximum value.
    By the end of the method the pointer is positionned after the last row.
    So I added to the detail panel that doesn't block following code:
    In create method of detail Entity Object Impl (only one entity object involved for this View)
    // Retrieve master EntityObjectImpl from association:
    PostalTariffImpl postalTariffImpl = getPostalTariffAssoc();
    // Retrieve detail default row iterator
    RowIterator ri = postalTariffImpl.getPostalDetailGroupAssoc();
    // Position pointer after last row
    ri.last();
    ri.next();
    Question: Why does this solve the problem?
    Regards
    Frederic
    PS Les mysteres de l'informatique!

  • Firing event when variant is loaded/saved

    Hi everybody!
    I've got the following issue:
    I need to save some values in a Z table linked to an specific variant,
    The scenario is the following: I have a button in my report, and when i press it, a popup window shows up with a table control.
    My requirement is to save this values in a Z table when the user saves a variant in the main report...
    Is there any way to get the current variant when you load/save it??? I think maybe this is the way to figure this out....
    Thanks in advance..

    You can register the GUI as an UncaughtExceptionHandler and the JVM will notify you when it dies.

  • Use of loops in pbo and pai events when a table control is on the screen

    asap.

    Hi Feroz,
              What is the very purpose of using table controls and tab strips in module pool programming.
    Rgds,
    kha

  • Propagating event when pressing ENTER

    Hi to all.
    I have JDialog and i have added JButton as getRootPane().setDefaultButton(ok); ok is that button.
    I have added action listener to that button. In my app, after this JDialog, i have another JDialog asking for something. If i click with mouse i can see that next dialog, but if i press enter, actionPerformed on my dialog is executing, and is prolongating on that other JDialog. It is acting like i have pressed Enter on that other dialog too. I want to stop this. How can i do this?

    To get better help sooner, post a SSCCE that clearly demonstrates your problem.
    To post code, use the code tags -- [code]Your Code[/code]will display asYour CodeOr use the code button above the editing area and paste your code between the {code}{code} tags it generates.
    db

  • IPhone UISwitch not appearing correctly in table cells

    I have a table cell with a UISwitch attached to it.
    When you click the switch it works (but not without a bit of code to make it switch when the word 'on' and 'off' are actually clicked) but when the table cell itself is clicked the switch distorts like shown here:
    http://img35.imageshack.us/img35/6510/picture1df.png
    what is the correct way to make a table cell with a UISwitch?

    The code you posted looks like it should work on 3.0 just fine.
    I've tried a custom table cell and it did the same thing
    Assuming your custom subclass was built and used correctly, the above tells me something is definitely wrong in the cell's environment.
    Perhaps it's something to do with the selecting of the row method?
    Well that's certainly the first place to look. The delegate method you posted looks kinky. I would comment out that method, then go back to the solutions that didn't work in the past and see if your tableView:didSelectRowAtIndexPath: hasn't been the problem all along.
    In any case I would get rid of the deselect message in tableView:didSelectRowAtIndexPath:. What are you trying to accomplish there? If you simply want to disable all selections, you can just code tableView.allowsSelection=NO during setup. If you want to know the user's selection but don't want the cell to actually become selected, try something like this in the delegate:
    - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    return nil;
    If you want the cell to actually become selected, but don't want its appearance to change, try cell.selectionStyle=UITableViewCellSelectionStyleNone in tableView:cellForRowAtIndexPath:.
    If tableView:didSelectRowAtIndexPath: turns out not to have been the problem, we'll need to look at the rest of your table view code. I've found the kind of problem you described is easily isolated once you have faith in some assumptions. In this case you just need to believe that both the subclass solution and the code in UICatalog will allow a UISwitch to display and operate perfectly. Once you believe that, you'll pay more attention to the rest of you code.
    One excellent way to gain faith in the basic structure is to start a fresh testbed and, for example, use code similar to UICatalog to bring up a table view with a UISwitch in one or more cells. Once you see how easy it is to make that work, you can start backing in some of your more creative init, delegate and/or data source methods until you break the testbed.
    - Ray

  • Table cell flashing

    Hi,
    Before I start to hack away a solution that might not be fx-like, I'd like to get your expert opinion about implementing cell flashing for a table view.
    I have done this several times in Swing (using a timer, a customer renderer, switching the bg/fg colors 3 times, and firing up an even table cell update), but how do implement this feature in JavaFX?
    * The table cell renderer (override def call (...)) could be used
    * The bg/fg color switch can be done using different css styles
    * what would be the best way to implement the timer and ask the view to "repaint" a specific cell?
    Thx v much

    Below is a bit of code that does something like what you want (the port to groovy should be easy). It may need some testing/tweaking for a real scenario and I'm not sure just how many animated cells you could have going at a time before performance becomes an issue (maybe someone from the JFX team could comment on this?).
    Also, regarding the use of styles for animating the change, you should be aware of this: Removing CSS style classes?
    Basically you need to make sure your 'default' style has values set for everything your 'highlight' style messes with, otherwise the highlight won't get turned off.
    import javafx.animation.FadeTransition;
    import javafx.animation.Timeline;
    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.control.TableCell;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.BorderPane;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    import javafx.util.Duration;
    public class TestApp extends Application
        public static void main(String[] args)
            Application.launch(args);
        @Override
        public void start(Stage stage) throws Exception
            BorderPane root = new BorderPane();
            TableView<Person> table = new TableView<Person>();
            table.getItems().addAll(
                    new Person("Cathy", "Freeman"),
                    new Person("Albert", "Namatjira"),
                    new Person("Noel", "Pearson"),
                    new Person("Oodgeroo", "Nooncal")
            TableColumn<Person, String> firstNameCol = new TableColumn<Person, String>("First Name");
            firstNameCol.setCellValueFactory(
                    new PropertyValueFactory<Person, String>("firstName")
            table.getColumns().add(firstNameCol);
            TableColumn<Person, String> lastNameCol = new TableColumn<Person, String>("Last Name");
            lastNameCol.setCellValueFactory(
                    new PropertyValueFactory<Person, String>("lastName")
            lastNameCol.setCellFactory(new Callback<TableColumn<Person, String>, TableCell<Person, String>>()
                public TableCell<Person, String> call(TableColumn<Person, String> column)
                    final FlashingLabel label = new FlashingLabel();
                    label.setStyle("-fx-background-color: #ffaaaa");
                    TableCell<Person, String> cell = new TableCell<Person, String>()
                        protected void updateItem(String value, boolean empty)
                            super.updateItem(value, empty);
                            label.setText(value);
                            label.setVisible(!empty);
                    cell.setGraphic(label);
                    return cell;
            table.getColumns().add(lastNameCol);
            root.setCenter(table);
            Scene scene = new Scene(root, 800, 600);
            scene.getStylesheets().add("styles.css");
            stage.setScene(scene);
            stage.show();
        public class FlashingLabel extends Label
            private FadeTransition animation;
            public FlashingLabel()
                animation = new FadeTransition(Duration.millis(1000), this);
                animation.setFromValue(1.0);
                animation.setToValue(0);
                animation.setCycleCount(Timeline.INDEFINITE);
                animation.setAutoReverse(true);
                animation.play();
                visibleProperty().addListener(new ChangeListener<Boolean>()
                    public void changed(ObservableValue<? extends Boolean> source, Boolean oldValue, Boolean newValue)
                        if (newValue)
                            animation.playFromStart();
                        else
                            animation.stop();
        public class Person
            private String firstName;
            private String lastName;
            private Person(String firstName, String lastName)
                this.firstName = firstName;
                this.lastName = lastName;
            public String getFirstName()
                return firstName;
            public String getLastName()
                return lastName;
    }

  • Catching a table cell focused event

    I have a JTable that I want users to input data into. One of the columns is a date field. In order to make sure the date is formatted and entered correctly, I've used a custom cell editor and renderer so the column looks like a DateTextField(a custom date field class). It works fine when the user clicks on the cell. But if the user hits the down arrow it doesn't set off the event that allows it to be edited as a DateTextField. Can you capture somekind of focus event on a particular cell and when you get a focus gained, programatically send the event that allows the cell to be edited? In case that didn't make sense, I'm trying to programatically simulate a mouse click on a table cell when it gets focus. Can it be done? If so, how? Thanks.

    Yes, I've tried that. The problem is what some people have described as a bug. There are two editing methods for JTable cells. One happens if the cell gets focus. There is no cursor and any underlying components are ignored. The second(the REAL edit) is when there is a cursor and the JTable understands that the cell is really a DateTextField. The only way I've found to achieve this is click on the cell. The number of clicks it takes depends on what the clickCountToStart is set to. However, if it's set to zero, it still takes one click.

  • How to when press the button and can change the value in the table?

    this is my code so far with a table and a button..how can i make it when press the button and the data in table change..
    * SimpleTableDemo.java is a 1.4 application that requires no other files.
    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    public class SimpleTableDemo extends JPanel {
    private boolean DEBUG = false;
    private JPanel button;
    private JButton enter;
    public SimpleTableDemo() {
    super(new BorderLayout());
    //button.setBackground(Color.pink);
    //setForeground(Color.pink);
    String[] columnNames = {"First Name",
    "Last Name",
    "Sport",
    "# of Years",
    "Vegetarian"};
    Object[][] data = {
    {"Mary", "Campione",
    "Snowboarding", new Integer(5), new Boolean(false)},
    {"Alison", "Huml",
    "Rowing", new Integer(3), new Boolean(true)},
    {"Kathy", "Walrath",
    "Knitting", new Integer(2), new Boolean(false)},
    {"Sharon", "Zakhour",
    "Speed reading", new Integer(20), new Boolean(true)},
    {"Philip", "Milne",
    "Pool", new Integer(10), new Boolean(false)}
    final JTable table = new JTable(data, columnNames);
    table.setPreferredScrollableViewportSize(new Dimension(500, 70));
    if (DEBUG) {
    table.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    printDebugData(table);
    //Create the scroll pane and add the table to it.
    JScrollPane scrollPane = new JScrollPane(table);
    enter = new JButton("Press me");
    //Add the scroll pane to this panel.
    buildButton();
    add(scrollPane, BorderLayout.NORTH);
    add(button, BorderLayout.CENTER);
    private void buildButton(){
    button = new JPanel();
    button.add(enter);
    private void printDebugData(JTable table) {
    int numRows = table.getRowCount();
    int numCols = table.getColumnCount();
    javax.swing.table.TableModel model = table.getModel();
    System.out.println("Value of data: ");
    for (int i=0; i < numRows; i++) {
    System.out.print(" row " + i + ":");
    for (int j=0; j < numCols; j++) {
    System.out.print(" " + model.getValueAt(i, j));
    System.out.println();
    System.out.println("--------------------------");
    * Create the GUI and show it. For thread safety,
    * this method should be invoked from the
    * event-dispatching thread.
    private static void createAndShowGUI() {
    //Make sure we have nice window decorations.
    JFrame.setDefaultLookAndFeelDecorated(true);
    //Create and set up the window.
    JFrame frame = new JFrame("SimpleTableDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //Create and set up the content pane.
    SimpleTableDemo newContentPane = new SimpleTableDemo();
    newContentPane.setOpaque(true); //content panes must be opaque
    frame.setContentPane(newContentPane);
    //Display the window.
    frame.pack();
    frame.setVisible(true);
    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
    }

    Cross-post:
    http://forum.java.sun.com/thread.jspa?threadID=676105

  • Saving table cell editor value when switch to other cell

    Hello,
    I have the code below to allow user entering integer values in a table cell. What I want is that if the user switch to an other cell than I want to save the editor value. It works fine if the user press the Enter button, but how can I do this when user clicks or press tab, arrow to switch to an other cell?
    public class IntegerEditor extends AbstractCellEditor implements TableCellEditor, ActionListener{
         JFormattedTextField component = new JFormattedTextField(NumberFormat.getIntegerInstance());
         public IntegerEditor(){
              component.addActionListener(this);
                                              component.setBorder(null);             
         public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
                          if (value != null)  component.setValue(value);
                          return component;
         public Object getCellEditorValue() {
              return Integer.valueOf(component.getValue().toString());
         public void actionPerformed(ActionEvent e) {
              fireEditingStopped();
    }

    Hello camickr,
    I add a column to the table with the function see below.
    With this sollution I the cell value saving is working fine, but it accept string vales for me :(
    If I use the JFormattedTextField than it accepts only integers but I have the original problem. I'm using fireEditingStopped(); in the focusLost method but it has no effect.
    What do I wrong?
    public TableColumn addNewIntegerColumn(java.lang.String caption, int width, boolean fix) {
          //Switch off AutoCreate
          this.setAutoCreateColumnsFromModel(false);
          //Create a new Column
          TableColumn col = new TableColumn(dataSheet.getColumnCount(),width,new LabelRenderer(),this.getDefaultEditor(Integer.class) );
          //Set column header
          col.setHeaderRenderer(new HeaderRenderer());
          col.setHeaderValue(caption);
         if (fix) col.setResizable(false);
          col.setPreferredWidth(width);
          //Add column to the table
          this.addColumn(col);
          //Add column to the model
          dataSheet.addColumn(caption);
          return col;
    }

  • How to raise on click event for Single Markable cell in WD Table

    Hi All,
        I want to raise an event when a cell is clicked on Single Markable Cell and get the row and column of that cell.
    I have tried all the events of the table and also On Enter event of input Field.
    But I am not able to trigger on click event .
    Please help me out. Points will be rewarded.
    Thanks,
    Anil

    Hi Anil,
            If the cell editor is a link to action then it triggers the ON CLICK event , Write the following code into
           the ON CLICK event handler to get the selected Row and Column ID.
          Event Properties is a node with two attributes Name and Value of type string.
    data: lr_node type ref to if_wd_context_node,
    lt_event_properties type wd_this->elements_event_properties,
    ls_event_properties type wd_this->element_event_properties.
    field-symbols: <l_value> type any.
    * fill internal table
    ls_event_properties-name = 'COLUMN_ID'.
    ls_event_properties-value = r_param->column.
    append ls_event_properties to lt_event_properties.
    ls_event_properties-name = 'INDEX'.
    ls_event_properties-value = r_param->index.
    append ls_event_properties to lt_event_properties.
    ls_event_properties-name = 'ATTRIBUTE'.
    ls_event_properties-value = r_param->attribute.
    append ls_event_properties to lt_event_properties.
    assign r_param->value->* to <l_value>.
    ls_event_properties-name = 'VALUE'.
    ls_event_properties-value = <l_value>.
    append ls_event_properties to lt_event_properties.

  • How can I make a table cell extend beyond the page?  The text disappears when the cell becomes larger than the page.

    How can I make a table cell extend beyond a page?  The text disappears when the cell becomes bigger than the page.  I want the table to continue to the next page.

    As a student, you might be able to get Office for Mac from the college bookstore at a substantial discount. Otherwise, I think your best option for documents that need to be shared with Office users is to get one of the free Office clones such as LibreOffice.

  • How to populate data in a new page when user place mouse on table cell

    Hi friends,
    i am working on OAF. I have one table with data coming from the backend. In a table some cells repersents wiht "P" or "C", till that Ok. but when user place mouse pointer over the cell, data should be populated in addtion text( babul text) or new page should be opened and it will show the related information about perticular cell.
    in my R&D. i created one OACellformateBean and attached messageStyled Text. MessageStyled text have property like " setMouseOver(MulInode, string)". i am really not aware what are the areguments i need to pass to this method ?. what is MultiInode.
    Pls help me in this reagard?. i am really in trouble ?????

    Thanks a lot. Tapash Ray, atleast should it possiable to open a new window when user click cell. could you please suggest some toher way similar to this , which we can get the data to diplay in a new window.

  • '...' not appearing in obscured table cell when using custom renderer.

    Hello all -
    I am using a custom JPanel as a cell renderer in a JTable to display two icons per cell. Unfortunately, I am running into a problem that occurs when resizing a column such that the width of the column is less than the size of the cell content. Normally, when resizing a cell in this manner, it will start to cut off the text within the cell and add '...' to signify that some material is obscured. However, using my cell renderer, the text simply cuts off with no indication whatsoever there is more content that is being hidden. I have tried looking through the JComponent code to find a function to overload but I haven't had much luck. Does anyone have any suggestions?
    For a simple example, compile and run the following code and try resizing the two columns. You should be able to notice the difference.
    Thanks,
    - Alex
    import java.awt.*;
    import java.awt.image.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class TwoIcons extends JFrame {
         public static void main(String[] args){
              createIcons();
              SwingUtilities.invokeLater
                   new Runnable()
                        public void run() {
                             new TwoIcons();
         public TwoIcons(){
              super("Test");
              DefaultTableModel tm = new DefaultTableModel(
                   new Object[][]{
                        {new IconPair("cross", "cross"), "just a string"},
                        {new IconPair("circle", "cross"),"just another string"},
                        {new IconPair("String", "circle"),"yet another string"}
                   }, new String[]{"Two Icons","String"}){
                   public Class getColumnClass(int columnIndex){
                        if(columnIndex==0){
                             return IconPair.class;
                        else
                             return super.getColumnClass(columnIndex);
              JTable table = new JTable(tm);
              final Color bg = table.getBackground();
              table.setDefaultRenderer(IconPair.class, new TableCellRenderer(){
                        RendererPanel renderer = new RendererPanel(bg);
                        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                             renderer.setIcons((IconPair)value);
                             return  renderer;
              JScrollPane scp = new JScrollPane(table);
              add(scp);
              setSize(400,100);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              pack();
              setVisible(true);
         class RendererPanel extends JPanel{
              JLabel icon1, icon2;
              RendererPanel(Color bg){
                   setLayout(new BoxLayout(this,BoxLayout.LINE_AXIS) );
                   icon1=new JLabel();
                   icon2=new JLabel();
                   add(icon1);
                   add(icon2);
                   setBackground(bg);
              public void setIcons(IconPair value) {
                   icon1.setIcon(value.i1);
                   icon1.setToolTipText("Icon 1");
                   icon2.setIcon(value.i2);
                   icon2.setToolTipText("Icon 2");
                   //uncomment next 2 lines if you want text as well
                   icon1.setText(value.s1);
                   icon2.setText(value.s2);
         class IconPair {
              public Icon i1,i2;
              public String s1,s2;
              IconPair(String s1, String s2){
                   this.i1=(Icon)icons.get(s1);
                   this.i2=(Icon)icons.get(s2);
                   this.s1=s1;
                   this.s2=s2;
         static Map icons = new HashMap();
         public static  void createIcons(){
              Image img = new BufferedImage(10,10, BufferedImage.TYPE_INT_ARGB);
              Graphics2D g2=(Graphics2D)(img.getGraphics());
              g2.setColor(Color.BLUE);
              g2.drawLine(0,0,10,10);
              g2.drawLine(0,10,10,0);
              icons.put("cross",new ImageIcon(img));
              img = new BufferedImage(10,10, BufferedImage.TYPE_INT_ARGB);
              g2=(Graphics2D)(img.getGraphics());
              g2.setColor(Color.ORANGE);
              g2.drawOval(1,1,8,8);
              icons.put("circle",new ImageIcon(img));
    }

    Things aren't resizable in your layout for the custom renderer. Here's your code working as you want (I think)
    import java.awt.*;
    import java.awt.image.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class TwoIcons extends JFrame {
         public static void main(String[] args){
              createIcons();
              SwingUtilities.invokeLater
                   new Runnable()
                        public void run() {
                             new TwoIcons();
         public TwoIcons(){
              super("Test");
              DefaultTableModel tm = new DefaultTableModel(
                   new Object[][]{
                        {new IconPair("cross", "cross"), "just a string"},
                        {new IconPair("circle", "cross"),"just another string"},
                        {new IconPair("String", "circle"),"yet another string"}
                   }, new String[]{"Two Icons","String"}){
                   public Class getColumnClass(int columnIndex){
                        if(columnIndex==0){
                             return IconPair.class;
                        else
                             return super.getColumnClass(columnIndex);
              JTable table = new JTable(tm);
              final Color bg = table.getBackground();
              table.setDefaultRenderer(IconPair.class, new TableCellRenderer(){
                        RendererPanel renderer = new RendererPanel(bg);
                        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                             renderer.setIcons((IconPair)value);
                             return  renderer;
              JScrollPane scp = new JScrollPane(table);
              getContentPane().add(scp);
              setSize(400,100);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              pack();
              setVisible(true);
         class RendererPanel extends JPanel{
              JLabel icon1, icon2;
              RendererPanel(Color bg){
                   setLayout(new BoxLayout(this,BoxLayout.LINE_AXIS) );
                   icon1=new JLabel();
                   icon2=new JLabel();
                   add(icon1);
                   add(icon2);
                   icon1.setMinimumSize(new Dimension(0, 0));
                   icon2.setMinimumSize(new Dimension(0, 0));
                   icon1.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));
                   icon2.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE));
                   setBackground(bg);
              public void setIcons(IconPair value) {
                   icon1.setIcon(value.i1);
                   icon1.setToolTipText("Icon 1");
                   icon2.setIcon(value.i2);
                   icon2.setToolTipText("Icon 2");
                   //uncomment next 2 lines if you want text as well
                   icon1.setText(value.s1);
                   icon2.setText(value.s2);
         class IconPair {
              public Icon i1,i2;
              public String s1,s2;
              IconPair(String s1, String s2){
                   this.i1=(Icon)icons.get(s1);
                   this.i2=(Icon)icons.get(s2);
                   this.s1=s1;
                   this.s2=s2;
         static Map icons = new HashMap();
         public static  void createIcons(){
              Image img = new BufferedImage(10,10, BufferedImage.TYPE_INT_ARGB);
              Graphics2D g2=(Graphics2D)(img.getGraphics());
              g2.setColor(Color.BLUE);
              g2.drawLine(0,0,10,10);
              g2.drawLine(0,10,10,0);
              icons.put("cross",new ImageIcon(img));
              img = new BufferedImage(10,10, BufferedImage.TYPE_INT_ARGB);
              g2=(Graphics2D)(img.getGraphics());
              g2.setColor(Color.ORANGE);
              g2.drawOval(1,1,8,8);
              icons.put("circle",new ImageIcon(img));
    }Note that the ... is a function of the JLabel when it is too small to render its text.

Maybe you are looking for