JList TableCellEditor in JTable

phew......I'm unable to resolve this.
I 'm trying to create a custom TableCellEditor which is of the type JList .
This is the main class which calls the ListEditor and the ListRenderer
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
public class TableDemo2 extends JPanel {
    private boolean DEBUG = false;
    public TableDemo2() {
         super(new GridLayout(1,0));
         JTable table = new JTable(new MyTableModel());
         table.setPreferredScrollableViewportSize(new Dimension(500, 70));
         JScrollPane scrollPane = new JScrollPane(table);
         initColumnSizes(table);
         setUpSportColumn(table, table.getColumnModel().getColumn(2));
         add(scrollPane);
    private void initColumnSizes(JTable table) {
         MyTableModel model = (MyTableModel)table.getModel();
         TableColumn column = null;
         Component comp = null;
         int headerWidth = 0;
         int cellWidth = 0;
         Object[] longValues = model.longValues;
         TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer();
         for (int i = 0; i < 3; i++) {
         column = table.getColumnModel().getColumn(i);
         comp = headerRenderer.getTableCellRendererComponent( null, column.getHeaderValue(), false, false, 0, 0);
         headerWidth = comp.getPreferredSize().width;
         comp = table.getDefaultRenderer(model.getColumnClass(i)). getTableCellRendererComponent( table, longValues, false, false, 0, i);
     cellWidth = comp.getPreferredSize().width;
     if (DEBUG) {
     System.out.println("Initializing width of column " + i + ". " + "headerWidth = " + headerWidth + "; cellWidth = " + cellWidth);
     column.setPreferredWidth(Math.max(headerWidth, cellWidth));
public void setUpSportColumn(JTable table, TableColumn sportColumn) {
     sportColumn.setCellRenderer(new ListRenderer());
sportColumn.setCellEditor(new ListEditor());
class MyTableModel extends AbstractTableModel {
     private String[] columnNames = {"Functions", "Parameters", "Values"};
     private Object[][] data = { {"DiscoveryCallBackFunction", "nodeName", "devDetail"} };
     public int getColumnCount() {
               return columnNames.length;
public int getRowCount() {
     return data.length;
public String getColumnName(int col) {
     return columnNames[col];
public Object getValueAt(int row, int col) {
     return data[row][col];
public Class getColumnClass(int c) {
     return getValueAt(0, c).getClass();
public boolean isCellEditable(int row, int col) {
     if (col < 2) {
     return false;
else {
return true;
public void setValueAt(Object value, int row, int col) {
     if (DEBUG) {
System.out.println("Setting value at " + row + "," + col + " to " + value + " (an instance of " + value.getClass() + ")");
     data[row][col] = value; fireTableCellUpdated(row, col);
     if (DEBUG) {
     System.out.println("New value of data:");
     printDebugData();
private void printDebugData() {
     int numRows = getRowCount();
     int numCols = getColumnCount();
     for (int i=0; i < numRows; i++) {
     System.out.print(" row " + i + ":");
     for (int j=0; j < numCols; j++) {
          System.out.print(" " + data[i][j]);
     System.out.println();
     } System.out.println("--------------------------");
private static void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("TableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TableDemo1 newContentPane = new TableDemo2();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
     javax.swing.SwingUtilities.invokeLater(new Runnable() {
     public void run() { createAndShowGUI();
ListEditor.java
import java.awt.event.*;
import java.awt.*;
import java.util.List;
import java.util.*;
import javax.swing.table.*;
import javax.swing.*;
public class ListEditor extends AbstractCellEditor  implements TableCellEditor, ActionListener{
   private JList list;
   private JScrollPane ps;
   private WorkflowGraphModel graphModel;
   private WorkflowGraph graph;
   private DefaultListModel listModel;
   public void prepareList() {
      listModel = new DefaultListModel();
      list = new JList(listModel);
      list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
       listModel.addElement("Item1");
       listModel.addElement("Item2");
       listModel.addElement("Item3");
       listModel.addElement("Item4");
       listModel.addElement("Item5");
      ps = new JScrollPane();
      ps.getViewport().add(list);
   public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) {
     return ps;
   public Object getCellEditorValue() {
      return list.getSelectedValue();
    public void actionPerformed(ActionEvent event) {
ListRenderer - I used frm one of the forums , but that didn't seem to work eitherpublic class ListRenderer extends JList implements TableCellRenderer {
public ListRenderer() {
super();
setBorder(new EmptyBorder(8, 12, 8, 12));
D.ebug("fixed height: " + getFixedCellHeight());
setCellRenderer(createCellRenderer());
public Component getTableCellRendererComponent(JTable table, Object value,
boolean selected, boolean hasFocus, int row, int col) {
if (value instanceof ListModel) {
setModel((ListModel) value);
} else {
Object[] data = new Object[1];
data[0] = value;
setListData(data);
setFont(table.getFont().deriveFont(14.0f));
return this;
public ListCellRenderer createCellRenderer() {
return new DefaultListCellRenderer() {
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean selected, boolean hasFocus) {
super.getListCellRendererComponent(list, value, index, selected, hasFocus);
setBorder(null);
setHorizontalAlignment(SwingConstants.RIGHT);
return this;
appreciate the help
thnx

I am happy to help you. below is the modified code:
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import java.awt.*;
import java.util.*;
import java.awt.GridLayout;
public class TableDemo2 extends JPanel {
private boolean DEBUG = false;
public TableDemo2() {
     super(new GridLayout(1,0));
     JTable table = new JTable(new MyTableModel());
     table.setPreferredScrollableViewportSize(new Dimension(500, 70));
     JScrollPane scrollPane = new JScrollPane(table);
     initColumnSizes(table);
     setUpSportColumn(table, table.getColumnModel().getColumn(2));
     add(scrollPane);
private void initColumnSizes(JTable table) {
     MyTableModel model = (MyTableModel)table.getModel();
     TableColumn column = null;
     Component comp = null;
     int headerWidth = 0;
     int cellWidth = 0;
     //?! Object[] longValues = model.longValues;
     TableCellRenderer headerRenderer = table.getTableHeader().getDefaultRenderer();
     for (int i = 0; i < 3; i++) {
     column = table.getColumnModel().getColumn(i);
// comp = headerRenderer.getTableCellRendererComponent( null, column.getHeaderValue(), false, false, 0, 0);
comp = headerRenderer.getTableCellRendererComponent( null, column.getHeaderValue(), true, true, 0, 0);
headerWidth = comp.getPreferredSize().width;
     //need ?no!!!!!!? comp = table.getDefaultRenderer(model.getColumnClass(i)). getTableCellRendererComponent( table, longValues, false, false, 0, i);
     cellWidth = comp.getPreferredSize().width;
     if (DEBUG) {
     System.out.println("Initializing width of column " + i + ". " + "headerWidth = " + headerWidth + "; cellWidth = " + cellWidth);
     column.setPreferredWidth(Math.max(headerWidth, cellWidth));
public void setUpSportColumn(JTable table, TableColumn sportColumn) {
     sportColumn.setCellRenderer(new ListRenderer());
sportColumn.setCellEditor(new ListEditor());
class MyTableModel extends AbstractTableModel {
     private String[] columnNames = {"Functions", "Parameters", "Values"};
     private Object[][] data = { {"DiscoveryCallBackFunction", "nodeName", "devDetail"} };
     public int getColumnCount() {
               return columnNames.length;
public int getRowCount() {
     return data.length;
public String getColumnName(int col) {
     return columnNames[col];
public Object getValueAt(int row, int col) {
     return data[row][col];
public Class getColumnClass(int c) {
     return getValueAt(0, c).getClass();
public boolean isCellEditable(int row, int col) {
     if (col < 2) {
     return false;
else {
return true;
public void setValueAt(Object value, int row, int col) {
     if (DEBUG) {
System.out.println("Setting value at " + row + "," + col + " to " + value + " (an instance of " + value.getClass() + ")");
     data[row][col] = value; fireTableCellUpdated(row, col);
     if (DEBUG) {
     System.out.println("New value of data:");
     printDebugData();
private void printDebugData() {
     int numRows = getRowCount();
     int numCols = getColumnCount();
     for (int i=0; i < numRows; i++) {
     System.out.print(" row " + i + ":");
     for (int j=0; j < numCols; j++) {
          System.out.print(" " + data[i][j]);
     System.out.println();
     } System.out.println("--------------------------");
private static void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("TableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TableDemo2 newContentPane = new TableDemo2();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
     javax.swing.SwingUtilities.invokeLater(new Runnable() {
     public void run() { createAndShowGUI();
//ActionListener?u r not using actionListener!.
//class ListEditor extends AbstractCellEditor implements TableCellEditor, ActionListener{
class ListEditor extends JScrollPane implements TableCellEditor, ActionListener{
private JList list;
private JScrollPane ps;
//???????? private WorkflowGraphModel graphModel;
//???????? private WorkflowGraph graph;
private DefaultListModel listModel;
public ListEditor(){
super();
// super(new String[]{"one", "two", "three", "four"});
listModel = new DefaultListModel();
list = new JList(listModel);
listModel.addElement("Item1");
listModel.addElement("Item2");
listModel.addElement("Item3");
listModel.addElement("Item4");
listModel.addElement("Item5");
listModel.addElement("Item4");
listModel.addElement("Item5");
this.getViewport().setView(list);
public void prepareList() {
list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
listModel.addElement("Item1");
listModel.addElement("Item2");
listModel.addElement("Item3");
listModel.addElement("Item4");
listModel.addElement("Item5");
ps = new JScrollPane();
ps.getViewport().add(list);
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) {
System.out.println("inside editor");
return this;
// return ps;
public Object getCellEditorValue() {
return list.getSelectedValue();
public boolean isCellEditable(EventObject ee) { return true; }
public boolean shouldSelectCell(EventObject eee) { return true; }
public boolean stopCellEditing() {return true; }
public void cancelCellEditing() { }
public void addCellEditorListener(CellEditorListener l) { }
public void removeCellEditorListener(CellEditorListener ll) { }
public void actionPerformed(ActionEvent event) {
//ListRenderer - I used frm one of the forums , but that didn't seem to work either
class ListRenderer extends JList implements TableCellRenderer {
public ListRenderer() {
super();
//*************This is the problem boy!: setBorder(new EmptyBorder(8, 12, 8, 12));
//???? DEBUG("fixed height: " + getFixedCellHeight());
//???noooooooo!!!! setCellRenderer(createCellRenderer());
public Component getTableCellRendererComponent(JTable table, Object value,
boolean selected, boolean hasFocus, int row, int col) {
if (value instanceof ListModel) {
setModel((ListModel) value);
} else {
Object[] data = new Object[1];
data[0] = value;
setListData(data);
//this size is big to fit inside the current row size!.** setFont(table.getFont().deriveFont(14.0f));
return this;
public ListCellRenderer createCellRenderer() {
return new DefaultListCellRenderer() {
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean selected, boolean hasFocus) {
super.getListCellRendererComponent(list, value, index, selected, hasFocus);
setBorder(null);
setHorizontalAlignment(SwingConstants.RIGHT);
return this;
if u hav more problem plz post. u r welcome.
by pravinth.G(searching job);

Similar Messages

  • How to enter values in JList box and JTable ???

    Hi friends...
    i am new to Swing
    SInce i am using Netbeans IDE 5.5
    and there is easy to do swing programming using this IDE
    now i am confused using JTable and JList box
    since i used method Insert in AWT
    but how to add values in LIST BOX ( JList )
    ex.
    JList list = new JList( );
    list.add(mystringvalue, ? );
    here it ask for component so what should i write here..
    when i write here this, gives error.
    what to do to insert string or vector or object in JList
    and to enter value in JTable
    THanks

    hi Ghanshyam,
    i am also new to swing i was just wondering are you using the swing palette to create your interface
    by the look of the code
    JList list = new JList( );
    list.add(mystringvalue, ? );you may not be because every JList is put in a JScrollPane
    but if you do want to do it through the palette there is an option in properties - model which you can uses to add in values.
    and if your looking to get info. from a database look up
    AbstractListModel &
    AbstractTableModel
    the is a lot of info on the internet (example net beans CarTableModel) is a
    good start off
    happy hunting.
    JJ

  • Numeric TableCellEditor for JTable

    Hi:
    I want to create a TableCellEditor which strictly handles numeric values. When a user double clicks on a cell in the table, they should
    see a numeric value which they can modify.
    For example, lets say I have a table cell with a value of 20.20 and I double click on the cell. Once I double click on the cell I see a value of 2.00. If I change the value which is displayed by the table cell editor to 4.00, the new value displayed in the cell should be 22.20. The value displayed by the table cell editor for that cell displays an offset value which is calculated from a base value which is entered someplace else in my JTable.
    Any suggestions or recommendations would greatly be appreciated!!
    Many Thanks:
    Alex

    You need to write both a renderer and a cell editor. This will allow you to display the same cell 'value' in different ways. To create a numberic only editor I suggest creating subclassing javax.swing.text.PlainDocument to restrict user input in a JTextField to numerics in your editor.
    Graeme

  • Can JTable cell acts as JList?

    I was planning to create an Event Calendar view in Monthly. Currently my jTable cell extends JTextArea. My problem is that, for example, today I got 2 events display in one cell, when a user double-click the "today" cell, an edit form will pop out, if there are 2 events in one cell, how I know which events to be edit? In this case I was thinking to use JList instaed of jTextArea. so i can choose which event to be edit. Is there any example showing how to implement jTable with jList cell? or is there any other method to overcome it?

    I haven't used a JList in a JTable so far, but for a JComboBox you find a working example in the tutorial. That may give you some ideas.
    What I did use is a (read only) JTable in a JTable. So if you don't achieve your goal with JList there are alternatives.
    But wait for our table specialists to come along.

  • Deleting a row from JTable

    I am trying to delete a row from a JTable whenever the button on the last column is pressed. I know to do this, I can use the removeRow(int) method of the tableModel. But the odd thing is when I try to get a handle to the TableModel from the JTable to use that function, i.e. table.getModel().removeRow(int) it doesn't work. But if I explicitly pass in the tableModel into my class it does work. Here's the code below:
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.UIManager;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableCellEditor;
    import javax.swing.AbstractCellEditor;
    import javax.swing.table.DefaultTableModel;
    public class tester4 extends JFrame
         protected final int BUTTON_COL = 2;
         private TableCellRenderer defaultRenderer;
         private TableCellEditor defaultEditor;
         private JTable workingTable;
         private String[] transactionCols = {"Qty", "Product", "Cancel"};
         private Object[][] data = {{5, "prod1", "Cancel"},
                   {6, "prod2", "Cancel"},
                   {7, "prod3", "Cancel"}};
        public tester4()
              workingTable = new JTable(tableModel);
              workingTable.setName("Working Table");
              defaultRenderer = workingTable.getDefaultRenderer(JButton.class);
              defaultEditor = workingTable.getDefaultEditor(Object.class);
              StatusTableRenderer testRenderer = new StatusTableRenderer(defaultRenderer, defaultEditor, workingTable, tableModel);
              workingTable.setDefaultRenderer(Object.class, testRenderer);
              workingTable.setDefaultEditor(Object.class, testRenderer);
            JScrollPane scrollPane = new JScrollPane( workingTable );
            getContentPane().add( scrollPane );
         private DefaultTableModel tableModel = new DefaultTableModel(data, transactionCols){
              // Only allow button column to be editable, if there is an actual
              // button in that row          
              public boolean isCellEditable(int row, int col){
                   return (col == BUTTON_COL && data[row][col] != "") ? true : false;
              // Overriden getColumnClass method that will return the object
              // class type of the first instance of the data type otherwise
              // returns the Object.class
              public Class getColumnClass(int column){
                for (int row = 0; row < getRowCount(); row++){
                    Object o = getValueAt(row, column);
                    if (o != null){ return o.getClass(); }
                return Object.class;
        public static void main(String[] args)
            tester4 frame = new tester4();
            frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
            frame.pack();
            frame.setVisible(true);
        public class StatusTableRenderer extends AbstractCellEditor
                                                implements TableCellRenderer,
                                                               TableCellEditor,
                                                               ActionListener{
             private TableCellRenderer defaultRenderer;
             private TableCellEditor defaultEditor;
             private JButton cancelButton;
             private JButton editButton;
             private String text;
             private int buttonColumn;
             private int selectedRow;
             private JTable table;
             private DefaultTableModel tableModel;
             public StatusTableRenderer(TableCellRenderer renderer,
                                           TableCellEditor editor,
                                           JTable table,
                                           DefaultTableModel tableModel){
                  defaultRenderer = renderer;
                  defaultEditor = editor;
                  this.table = table;
                  this.tableModel = tableModel;
                  buttonColumn = table.getColumnCount() - 1;
                cancelButton = new JButton();
                editButton = new JButton();
                editButton.setFocusPainted(true);
                editButton.addActionListener(this);
             public StatusTableRenderer(TableCellRenderer renderer,
                                                TableCellEditor editor,
                                                JTable table,
                                                DefaultTableModel tableModel,
                                                int _buttonColumn){
                  this(renderer, editor, table, tableModel);
                  buttonColumn = _buttonColumn;
             public Component getTableCellRendererComponent(JTable table, Object value,
                       boolean isSelected, boolean hasFocus, int row, int column) {
                  if (column == buttonColumn){
                       if (hasFocus){
                            cancelButton.setForeground(table.getForeground());
                            cancelButton.setBackground(UIManager.getColor("Button.background"));
                       else if (isSelected){
                            cancelButton.setForeground(table.getSelectionForeground());
                            cancelButton.setBackground(table.getSelectionBackground());
                       else{
                            cancelButton.setForeground(table.getForeground());
                            cancelButton.setBackground(UIManager.getColor("Button.background"));
                       cancelButton.setText( (value == null) ? "" : value.toString() );
                       return cancelButton;
                return defaultRenderer.getTableCellRendererComponent(
                            table, value, isSelected, hasFocus, row, column);
             public Component getTableCellEditorComponent(JTable table, Object value,
                       boolean isSelected, int row, int column){
                  if (column == buttonColumn){
                       text = ((value == null) ? "": value.toString());
                       editButton.setText(text);
                       selectedRow = row;
                       return editButton;
                  return defaultEditor.getTableCellEditorComponent(
                            table, value, isSelected, row, column);
            public Object getCellEditorValue()
                return text;
            public void actionPerformed(ActionEvent e)
                fireEditingStopped();
                // This works
                tableModel.removeRow(selectedRow);
               // This does not work
              //  table.getModel().removeRow(selectedRow);
    }Take a look at the actionPerfformed method. One way of doing it works, one doesn't. Just trying to understand why me getting a handle to the tableModel through the table doesn't work.
    Message was edited by:
    deadseasquirrels

    It gives me a run-time error Well then your question should be "why do I get this run-time error" and then you would quote the error. Be more descriptive. "It doesn't work" is not descriptive.
    table.getModel().removeRow(selectedRow);I don't use JDK1.5 either. But if you are saying that the above line compiles cleanly with JDK1.5 (because of the auto-boxing feature, or whatever its called), then I see no reason why the code wouldn't work since it recognizes the class as a DefaultTableModel.
    Presumably you commented out the other line so you don't try to delete the row twice. Otherwise you might be getting a indexing error.

  • Urgent:display result from JTable

    need help making the following in my code work:
    1.how do i display the whole table in my code using a dialog box or JOptionPane.
    2. i want to display a message beneath the table show the total price of items selected from the JComboBox .
    3.is there any way i could add a method or sommething that display detail of each item seleted from the list in a seperate column of the JTable in my code.say for instance,if i selects beans,1 cup, 100 and it display protein in a seperate column in the JTable.
    Thanks in advance.
    my code:
    '\n'
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.table.*;
    import java.util.*;
    public class BreakFast extends JFrame implements ActionListener{
         private JList ingredient;
         private JTable table;
         private DefaultTableModel model;
         private JButton move;
         private String[] food;
         private JComboBox box,box1;
         private String[] units;
         private double[] price={100,150,200,250,300,350,400};
         private JButton finish;
         public BreakFast(){
              Container c=getContentPane();
              c.setLayout(new FlowLayout());
              food = new String[] {"Corn Flakes","Beans","Shredded Bread","Mushroom",
              "eggs","Milks","Butter","Sugar","water","Oil"};
              ingredient = new JList(food);
              ingredient.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
              ingredient.setVisibleRowCount(4);
              JPanel p = new JPanel();
              p.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
              move = new JButton(">>>");
              move.addActionListener(this);
              //meal = new JTextArea(5,20);
              //meal.setEditable(false);
              p.add(new JScrollPane(ingredient),"Wast");
              JPanel p2 = new JPanel();
              p2.setBorder(new BevelBorder(BevelBorder.RAISED));
              units = new String[]{"2 cups","3 cups","4 cups","5 cups","1 mudu","2 mudu",
                        "3 mudu","4 mudu","5 mudu","6 mudu","7 mudu","8 mudu","9 mudu",
                        "1 bag"};
              box = new JComboBox(units);
              box.addActionListener(this);
              box1 = new JComboBox();
              //box1.setEditable(true);
              box1.addActionListener(this);
              for(int i=0;i<price.length;i++){
                   box1.addItem(price);
              model = new DefaultTableModel();
              //model.addColumn("No.");
              model.addColumn("Food Items");
              model.addColumn("Units");
              model.addColumn("Price");
              table = new JTable(model);
              JScrollPane pane = new JScrollPane(table);
              pane.setPreferredSize(new Dimension(350,100));
              finish = new JButton("Finish");
              finish.addActionListener(this);
              p.add(box,"West");
              p.add(box1,"Center");
              p.add(move,"East");
              p2.add(pane,"North");
              p2.add(finish,"South");
              c.add(p);
              c.add(p2);
              setSize(450,300);
              setVisible(true);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         public void actionPerformed(ActionEvent e){
         Object[] value = ingredient.getSelectedValues();
         if(e.getSource() == move){
         for(int i=0;i < value.length;i++){
         String word = (String)value[i];
         Vector<Object> data = new Vector<Object>();
         data.addElement( word );
    data.addElement( box.getSelectedItem() );
    data.addElement( box1.getSelectedItem());
         model.addRow( data );
         if(e.getSource() == finish){
              JOptionPane.showMessageDialog(BreakFast.this,table,"Selection Summary",JOptionPane.PLAIN_MESSAGE);
              System.exit(0);
         public static void main(String[] arg){
              new BreakFast();

    Multi-Post:
    http://forum.java.sun.com/thread.jspa?threadID=5122371&tstart=0
    Ignored.

  • Multiple Column in JLIst

    Hi friend,
    Please could u tell me how can i make a multiple Column in a JList without using JTable. It would be better if u send me a complete code for that.
    Thanks u very much in Advance.
    Khaled Mahmud

    First of all I would like to thank u for reply.
    I have searched through the Forums but I could not get any solution.
    Actually, I have a code for Multi Column JList but that was made up using JTable.
    But I want a Multi Column JList which is made up without using JTable.

  • Jlist and ensureIndexIsVisible method

    I have a JList that contains 100 elements, and the JList view only shows 10 cells (elements). In order to see the rest of element, the user needs to use the mouse to scroll down the list.
    By the default, I want to select element 12. I use setSelectedIndex(12) method. Yes, the cell is selected. However, the JList doesn't show the selection because the JList view only shows the top 10 cells. So, I use
    ensureIndexIsVisible(12) method to make the cell 12 visible in the view (user doesn't need to scroll down). But, the cell 12 doesn't show on the JList view. What did I do wrong? Or, did I misunderstand how ensureIndexIsVisible does?
    Thank you so much

    ensureIndexIsVisible() is based on the functionality of
    JComponent.scrollRectToVisible(), and I have noticed
    some flakiness with this in that (for whatever reason)
    it is sometimes necessary to call this twice.
    Specifically, the GUI just doesn't respond correctly to the
    first call sometimes. Typically, I have seen this when trying
    to move to the last item in a JList or a
    JTable, and it has something to do with
    the GUI not yet knowing the correct size of the contents
    of the list. By the second time this is called, it seems to
    know. Technically, a second call isn't necessary provided
    that you first force a re-paint of the component as in:
              Rectangle bounds = getBounds();
              bounds.x = 0;
              bounds.y = 0;
              paintImmediately(bounds);and then call scrollRectToVisible() or ensureIndexIsVisible().
    This may not be your problem, but I know I've encountered it.
    b.c

  • Clicking JButton in JTable

    Hello all,
    I have populated a JTable with Buttons and need for them to appear to be clicked (become depressed) when they are clicked.
    Currently, I have found some way to handle click events on them, but the display is not updated to show that they are clicked.
    How can this be done??
    fyi, the click code adds a mouse listener to the table, which determines which cell is clicked based on location and forwards the event to appropriate handler. it goes something like this:
    private void forwardEventToHandlers(MouseEvent e) {
             TableColumnModel columnModel = _table.getColumnModel();
             _column = columnModel.getColumnIndexAtX(e.getX());
             _row    = e.getY() / _table.getRowHeight();
             Object value;
             JButton button = new JButton();
             MouseEvent buttonEvent;
             if(_row >= _table.getRowCount() || _row < 0 ||
                _column >= _table.getColumnCount() || _column < 0)
               return;
             value = _table.getValueAt(_row, _column);
                              // forward an event to handler...
             }

    I have a couple of attempts at this that you may be able to use or at least give you some ideas:
    a) Original attempt
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class TableButton extends JFrame
        public TableButton()
            String[] columnNames = {"Date", "String", "Integer", "Decimal", "Boolean"};
            Object[][] data =
                {new Date(), "A", new Integer(1), new Double(5.1), new JButton("Delete")},
                {new Date(), "B", new Integer(2), new Double(6.2), new JButton("Delete")},
                {new Date(), "C", new Integer(3), new Double(7.3), new JButton("Delete")},
                {new Date(), "D", new Integer(4), new Double(8.4), new JButton("Delete")}
            DefaultTableModel model = new DefaultTableModel(data, columnNames);
            final JTable table = new JTable( model )
                //  Returning the Class of each column will allow different
                //  renderers to be used based on Class
                public Class getColumnClass(int column)
                    return getValueAt(0, column).getClass();
                //  Don't edit the button column
                public boolean isCellEditable(int row, int column)
                    return column != 4;
            table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
              table.setPreferredScrollableViewportSize(table.getPreferredSize());
            JScrollPane scrollPane = new JScrollPane( table );
            getContentPane().add( scrollPane );
            //  Create button renderer
            TableCellRenderer buttonRenderer = new ButtonRenderer();
            table.setDefaultRenderer(JButton.class, buttonRenderer);
            //  Add table mouse listener
            table.addMouseListener( new ButtonListener(table, 4) );
        public static void main(String[] args)
    //        try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }
    //        catch(Exception e) {}
            TableButton frame = new TableButton();
            frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
            frame.pack();
            frame.setLocationRelativeTo( null );
            frame.setVisible(true);
        class ButtonRenderer extends JButton implements TableCellRenderer
            public Component getTableCellRendererComponent(
                JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
                JButton button = (JButton)value;
                if (button == null)
                    setText( "" );
                    getModel().setPressed( false );
                    getModel().setArmed( false );
                else
                    setText( button.getText() );
                    getModel().setPressed( button.getModel().isPressed() );
                    getModel().setArmed( button.getModel().isArmed() );
                return this;
         *  1) Creation of class will determine the column to process mouse events on
         *  a) Mouse pressed will determine the row to process and paint pressed button
         *  b) Mouse clicked will do the actual processing
         *  c) Mouse released will paint the normal button
        class ButtonListener extends MouseAdapter
            private JTable table;
            //  Column from the data model to process mouse events on
            private int column;
            //  The table row when the mouse was pressed
            private int row;
            //  The table column when the mouse was pressed
            private int tableColumn;
            //  Repaint the button on mouse released event
            private boolean paintOnRelease;
            ButtonListener(JTable table, int column)
                this.table = table;
                this.column = column;
             *  Repaint button to show pressed state
            public void mousePressed(MouseEvent e)
                //  Make sure the MouseEvent was on the button column
                if ( !buttonColumn(e) ) return;
                //  Repaint the button for the current row/column
                row = table.rowAtPoint( e.getPoint() );
                tableColumn = table.columnAtPoint( e.getPoint() );
                paintButton( true );
                paintOnRelease = true ;
             *  Do table processing on this event
            public void mouseClicked(MouseEvent e)
                //  Make sure the MouseEvent was on the button column
                if ( !buttonColumn(e) ) return;
                //  Only process a single click
                if (e.getClickCount() > 1) return;
                //  Delete current row from the table
                DefaultTableModel model = (DefaultTableModel)table.getModel();
                model.removeRow( this.row );
                //  Row has been deleted, nothing to repaint
                paintOnRelease = false;
             *  Repaint button to show normal state
            public void mouseReleased(MouseEvent e)
                if (paintOnRelease)
                    paintButton( false );
                paintOnRelease = false;
            private boolean buttonColumn(MouseEvent e)
                //  In case columns have been reordered, we must map the
                //  table column to the data model column
                int tableColumn = table.columnAtPoint( e.getPoint() );
                int modelColumn = table.convertColumnIndexToModel(tableColumn);
                return modelColumn == column;
            private void paintButton(boolean pressed)
                //  Make sure we have a JButton before repainting
                Object o = table.getValueAt(row, tableColumn);
                if (o instanceof JButton)
                    JButton button = (JButton)o;
                    button.getModel().setPressed( pressed );
                    button.getModel().setArmed( pressed );
                    table.setValueAt(button, row, tableColumn);
    }b) Latest attempt:
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class TableButton3 extends JFrame
        public TableButton3()
            String[] columnNames = {"Date", "String", "Integer", "Decimal", ""};
            Object[][] data =
                {new Date(), "A", new Integer(1), new Double(5.1), "Delete0"},
                {new Date(), "B", new Integer(2), new Double(6.2), "Delete1"},
                {new Date(), "C", new Integer(3), new Double(7.3), "Delete2"},
                {new Date(), "D", new Integer(4), new Double(8.4), "Delete3"}
            DefaultTableModel model = new DefaultTableModel(data, columnNames);
            JTable table = new JTable( model )
                //  Returning the Class of each column will allow different
                //  renderers to be used based on Class
                public Class getColumnClass(int column)
                    return getValueAt(0, column).getClass();
            JScrollPane scrollPane = new JScrollPane( table );
            getContentPane().add( scrollPane );
            //  Create button column
            ButtonColumn buttonColumn = new ButtonColumn(table, 4);
        public static void main(String[] args)
            TableButton3 frame = new TableButton3();
            frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
            frame.pack();
            frame.setVisible(true);
        class ButtonColumn extends AbstractCellEditor
            implements TableCellRenderer, TableCellEditor, ActionListener
            JTable table;
            JButton renderButton;
            JButton editButton;
            String text;
            public ButtonColumn(JTable table, int column)
                super();
                this.table = table;
                renderButton = new JButton();
                editButton = new JButton();
                editButton.setFocusPainted( false );
                editButton.addActionListener( this );
                TableColumnModel columnModel = table.getColumnModel();
                columnModel.getColumn(column).setCellRenderer( this );
                columnModel.getColumn(column).setCellEditor( this );
            public Component getTableCellRendererComponent(
                JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
                if (hasFocus)
                    renderButton.setForeground(table.getForeground());
                    renderButton.setBackground(UIManager.getColor("Button.background"));
                else if (isSelected)
                    renderButton.setForeground(table.getSelectionForeground());
                     renderButton.setBackground(table.getSelectionBackground());
                else
                    renderButton.setForeground(table.getForeground());
                    renderButton.setBackground(UIManager.getColor("Button.background"));
                renderButton.setText( (value == null) ? "" : value.toString() );
                return renderButton;
            public Component getTableCellEditorComponent(
                JTable table, Object value, boolean isSelected, int row, int column)
                text = (value == null) ? "" : value.toString();
                editButton.setText( text );
                return editButton;
            public Object getCellEditorValue()
                return text;
            public void actionPerformed(ActionEvent e)
                fireEditingStopped();
                System.out.println( e.getActionCommand() + " : " + table.getSelectedRow());
    }

  • Returning a selection from a list or table

    I'm looking for a nice way to present the selcted value of a JList or a JTable to the rest of the program. So far the only thing I know to do is make the selection a static variable of the class implementing the ListSelectionListener interface. For instance, in the code below, I would make the variable rowNum a static variable, accessible from outside. But OO says to make it a method like public int getSelection(){return rowNum}i've had difficulty extracting the selection and making it available where it is really needed, in the business logic of the program. Any comments would be appreciated.class TablePanel extends JPanel
      ConnectionHandler ch;
      static TheTableModel tm;
      ListSelectionHandler selector;
      TablePanel(ConnectionHandler ch)
        this.ch = ch;
        tm = new TheTableModel();
        JTable jt = new JTable(tm);
        //selection mechanics
        jt.setPreferredScrollableViewportSize(new Dimension(900,200));
        ListSelectionModel rowSM = jt.getSelectionModel();
        selector = new ListSelectionHandler();
        rowSM.addListSelectionListener(selector);
        jt.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        //set column widths
        TableColumn column = null;
        for (int i = 0; i<9;i++)
          column = jt.getColumnModel().getColumn(i);
          if(i==0) column.setPreferredWidth(40);
          column.setPreferredWidth(100);
        //display
        JScrollPane jsp = new JScrollPane(jt);
        add(jsp);
    class ListSelectionHandler implements ListSelectionListener
      public void valueChanged(ListSelectionEvent e)
        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
        if(lsm.isSelectionEmpty()) return;
        int rowNum = lsm.getMinSelectionIndex();
        if(!e.getValueIsAdjusting())
          System.out.println(rowNum +" =rowNum");
    }

    You could make it a method like
    public int getSelection() {
       return table.getSelectedRow();
    }That would work fine provided 'table' is kept as an instance variable. As far as I can see, there's no need for a static variable here. If you wanted to return different information, you could do it the same way (eg, returning the selected value, instead of the row, etc.)

  • BPM + ADF list of elements

    Hello,
    I have a problem with this, I'm using BPM 11g (11.1.1.5FP) and I want to process a certain list of items.
    Problem is that, although for BPM this is easy, it seems ADF has problems reading this.
    I'll show you what I mean:
    If I try getting the InputValue from elements 1,2,3,4,5,6,7 in my ADF, and no problem, but elements 8 & 9 seems to be Null every time, doesn't matter if my list was completly initialized in BPM, and has 9 elements 4, all of them with their element 6 created and each element 6 has both element 8 and 9 with values setted.
    *************** In my XSD file **************
    >
    <?xml version="1.0" encoding="windows-1252" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.example.org"
    targetNamespace="http://www.example.org"
    elementFormDefault="qualified">
    <xsd:element name="exampleElement">
    <xsd:annotation>
    <xsd:documentation>
    A sample element
    </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="element1" type="xsd:string"/>
    <xsd:element name="element2" type="xsd:string"/>
    <xsd:element name="element3">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="element4" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="element5" type="xsd:string"/>
    <xsd:element name="element6">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="element8" type="xsd:string"/>
    <xsd:element name="element9" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="element7" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ************* In my PAGEDEF file **************
    <accessorIterator MasterBinding="element3Iterator" Binds="element4"
    RangeSize="25" DataControl="TestRoberto_UI_Humantask1"
    BeanClass="TestRoberto_UI_Humantask1.element4xyfmbwt0"
    id="element4Iterator"/>
    <tree IterBinding="element4Iterator" id="element4">
    <nodeDefinition DefName="TestRoberto_UI_Humantask1.element4xyfmbwt0"
    Name="element40">
    <AttrNames>
    <Item Value="element5"/>
    <Item Value="element7"/>
    </AttrNames>
    <Accessors>
    <Item Value="element6"/>
    </Accessors>
    </nodeDefinition>
    <nodeDefinition DefName="TestRoberto_UI_Humantask1.element6xyfmbwt0"
    Name="element41">
    <AttrNames>
    <Item Value="element8"/>
    <Item Value="element9"/>
    </AttrNames>
    </nodeDefinition>
    </tree>
    ********** My ADF Table in my JSPX file **************
    <af:table value="#{bindings.element4.collectionModel}"
    var="row" rows="#{bindings.element4.rangeSize}"
    emptyText="#{bindings.element4.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.element4.rangeSize}"
    rowBandingInterval="0" id="t3">
    <af:column headerText="Element5"
    id="col1">
    <af:inputText value="#{row.bindings.element5.inputValue}"
    id="itCol1">
    </af:inputText>
    </af:column>
    <af:column headerText="Element7"
    id="col2">
    <af:inputText value="#{row.bindings.element7.inputValue}"
    id="itCol2">
    </af:inputText>
    </af:column>
    <af:column headerText="Element8"
    id="col3">
    <af:inputText value="#{row.bindings.element8.inputValue}"
    id="itCol3">
    </af:inputText>
    </af:column>
    <af:column headerText="Element9"
    id="col4">
    <af:inputText value="#{row.bindings.element9.inputValue}"
    id="itCol4">
    </af:inputText>
    </af:column>
    </af:table>
    ******* ERROR *************
    <Mar 15, 2012 12:18:06 PM GMT+03:00> <Error> <oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator>
    <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #1
    javax.el.PropertyNotFoundException: Target Unreachable, 'element8' returned null
    at com.sun.el.parser.AstValue.getTarget(Unknown Source)
    at com.sun.el.parser.AstValue.isReadOnly(Unknown Source)
    at com.sun.el.ValueExpressionImpl.isReadOnly(Unknown Source)
    at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer._getUncachedReadOnly(EditableValueRenderer.java:486)
    at oracle.adfinternal.view.faces.renderkit.rich.EditableValueRenderer.cacheReadOnly(EditableValueRenderer.java:416)
    at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.beforeEncode(LabeledInputRenderer.java:128)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:334)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
    at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.renderDataCell(BaseColumnRenderer.java:1333)
    at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.encodeAll(BaseColumnRenderer.java:104)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:938)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:400)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.renderDataBlockRows(TableRenderer.java:1952)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer._renderSingleDataBlock(TableRenderer.java:1613)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer._handleDataFetch(TableRenderer.java:1017)
    at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:506)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
    at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:540)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:938)
    at oracle.adfinternal.view.faces.util.rich.InvokeOnComponentUtils$EncodeChildVisitCallback.visit(InvokeOnComponentUtils.java:113)
    at org.apache.myfaces.trinidadinternal.context.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:222)
    at org.apache.myfaces.trinidad.component.UIXIterator.visitTree(UIXIterator.java:251)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at oracle.adf.view.rich.component.rich.RichDocument.visitTree(RichDocument.java:198)
    at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
    at oracle.adfinternal.view.faces.util.rich.InvokeOnComponentUtils.renderChild(InvokeOnComponentUtils.java:43)
    at oracle.adfinternal.view.faces.streaming.StreamingDataManager._pprComponent(StreamingDataManager.java:757)
    at oracle.adfinternal.view.faces.streaming.StreamingDataManager.execute(StreamingDataManager.java:525)
    at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer._encodeStreamingResponse(DocumentRenderer.java:3489)
    at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1458)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:938)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
    at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:267)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:191)
    at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:800)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:294)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:214)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adf.share.http.ServletADFFilter.doFilter(ServletADFFilter.java:62)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.bpel.services.workflow.client.worklist.util.WorkflowFilter.doFilter(WorkflowFilter.java:213)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.bpel.services.workflow.client.worklist.util.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:176)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    In the future Swing related questions should be posted in the Swing forum.
    As I understand the question you want to display 2 pieces of information in each row.
    If you know the difference between a JList and a JTable you should be able to answer your own question.

  • Drag and Drop can't really figure it out! :(

    hello there,
    i'm just trying to drop a .txt file from windows explorer to my JLabel enabled drop component.., and i'm having a hard time doing it,
    is it possible? how exactly is it done? also are there only really few components that are supported? ie, JLabel, JList, Jtree, and JTables?
    could you give me an example that is not to be found here or at google.com when you typed 'java drag and drop',
    thanks a lot for your time, :)

    hello there,
    i'm just trying to drop a .txt file from windows
    explorer to my JLabel enabled drop component.., and
    i'm having a hard time doing it,
    is it possible? how exactly is it done? also are thereDrag & Drop is done between java components so you cannot simply drag a text file from Windows.

  • Can we replace components in same location?

    I am trying to add a new functionality to my swing gui panel. the requirement is something like this.
    i have two JList components on my JPanel. One to the left and one to the right. in between there is a "add" button. when i select items from left JList and click "add" button the items are added into the right JList.
    Now as per new requirement. I have added a "checkbox" right below the "add" button. Now when i select the "checbox" the right JList has to be replaced by JTable. similarly when i deselect the checkbox the JTable should be again replaced back by JList. ofcourse the functionality of show the selected items from the left JList doesn't change in either of these cases.
    So, this action of replacing one component(JList) with another(JTable) and vice-versa is doable??
    i want to do this replacing in the ItemListener method. Because this change should occur when an "checkbox" is selected or deselected.
    Please...help me about this.
    Thanks :)
    sri

    Create a JPanel just for the JList and JTable and look up how to Use CardLayout.

  • How to display my text file in swing

    hi all,
    i have a screen where user enters a batch no. and number.
    when user presses a button i should get a list displayed on my sreen.
    how to do this...and how to call function that generates the list in my actionlistener..please help me....

    You need to post some code in code tags. What you are asking is very easy to do yet it sounds as though you are flustered. Step back and learn each and every thing you need to do (plan) before you attempt anything in Java, trying to find out what API you need in the middle of a project is a sign of looming disaster.
    Your button needs and actionlistener and an actionPerformed method; if you have only a foggy idea what this is you need to look them up. Also, your list can be displayed in a JTextPane, JEditorPane, JTextArea, JList (?), or JTable. I suggest all these since I did not see specific requiorments posted. When dealing with any of these pay atention to the model (contains the data FOR the view object). JTextArea is the lightest of these and probably the least confusing, be sure to put it in a JScrollPane if you want to, uh, scroll the list.
    Sean

  • Validation in JTextField

    Hi ,
    I have a JTextField, a JComboBox , a JButton , a JList and a JTable in my Frame. I enter a value in JTextField which has to be validated with a constant. Where do u write the validation ?
    i have written the validation in focus lost of JTextField.
    This causes problem when i click on the jtable or jcombobox. When i click on the combobox after entering a wrong value in the textfield, cursor remains in the jtextfield but i am able selected a value from the jcombobox as well.
    Following is the sample code.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    * Title:
    * Description:
    * Copyright: Copyright (c) 2001
    * Company:
    * @author
    * @version 1.0
    public class EnabledTest extends JFrame implements FocusListener
    JTextField jTextField1 = new JTextField();
    JTextField jTextField2 = new JTextField();
    JComboBox jComboBox1 = new JComboBox();
    JList jList1 = new JList();
    JButton jButton1 = new JButton();
    JTable jTable1 = new JTable();
    public EnabledTest()
    try
    jbInit();
    addListeners();
    catch(Exception e) {
    e.printStackTrace();
    public static void main(String[] args)
    EnabledTest enabledTest1 = new EnabledTest();
    enabledTest1.setVisible(true);
    enabledTest1.setBounds(0,0,400,400);
    public void addListeners()
    jTextField1.addFocusListener(this);
    jTextField2.addFocusListener(this);
    jComboBox1.addFocusListener(this);
    jList1.addFocusListener(this);
    jButton1.addFocusListener(this);
    public void focusGained(FocusEvent e)
    public void focusLost(FocusEvent e)
    if(e.getSource() == jTextField1)
    jTextField1_validationPerformed(e);
    private void jbInit() throws Exception
    jTextField1.setText("jTextField1");
    jTextField1.setBounds(new Rectangle(49, 39, 144, 38));
    this.getContentPane().setLayout(null);
    jTextField2.setBounds(new Rectangle(227, 40, 144, 38));
    jTextField2.setText("jTextField1");
    jComboBox1.setBounds(new Rectangle(52, 115, 141, 34));
    jComboBox1.addItem("one");
    jComboBox1.addItem("two");
    jList1.setBounds(new Rectangle(239, 110, 135, 120));
    jButton1.setText("jButton1");
    jButton1.setBounds(new Rectangle(56, 187, 127, 29));
    jTable1.setBounds(new Rectangle(55, 251, 330, 117));
    jTable1.setModel(new DefaultTableModel(3,3));
    this.getContentPane().add(jTextField1, null);
    this.getContentPane().add(jTextField2, null);
    this.getContentPane().add(jComboBox1, null);
    this.getContentPane().add(jList1, null);
    this.getContentPane().add(jButton1, null);
    this.getContentPane().add(jTable1, null);
    private void jTextField1_validationPerformed(FocusEvent e)
    jTextField1.removeFocusListener(this);
    int intValue = new Integer(jTextField1.getText()).intValue();
    if (intValue > 100)
    JOptionPane.showMessageDialog(this, "Should be < 100");
    jTextField1.requestFocus();
    jTextField1.addFocusListener(this);
    }

    It is fairly easy to validate for a range. I added this kind of validation (attached (*)). At any time you may want to set the validity range of your NumericJTextField. I did it as follows:
    this.numericTextField.setValidityRange(-999, +999);
    I tested and it does work nicely - couldn't fool it.
    (*) Is there any holy way to post files without having to cut and paste them as a whole in this doubly holy tab-eater JTextArea :-(
    package textfieldvalidator;
    * Title: NumericJTextField
    * Description: An example JTextFiled that accepts only digits
    * Copyright: nobody - use it at will
    * Company:
    * @author Antonio Bigazzi - [email protected]
    * @version 1.0 First and last
    import javax.swing.*;
    import javax.swing.text.*;
    import java.awt.*;
    public class ValidatorExample extends JPanel {
    NumericJTextField numericTextField; // accepts only digit
    JTable table;
    public ValidatorExample() {
    this.setLayout(new BorderLayout());
    this.numericTextField = new NumericJTextField("1234X5");
    this.numericTextField.setBackground(Color.black);
    this.numericTextField.setForeground(Color.yellow);
    this.numericTextField.setCaretColor(Color.white);
    this.numericTextField.setFont(new Font("Monospaced", Font.BOLD, 16));
    this.numericTextField.setValidityRange(-999, +999);
    this.table = new JTable(
    new String[][] { {"a1a", "b2b", "c3c"}, {"456", "777", "234"}},
    new String[] {"Col 1", "Col 2", "Col 3"}
    this.add(this.numericTextField, BorderLayout.NORTH);
    this.add(this.table, BorderLayout.CENTER);
    public static void main(String[] args) {
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setContentPane(new ValidatorExample());
    f.setLocation(300, 75);
    f.pack();
    f.setVisible(true);
    // ===================== the meat ============================
    // the specialized JTextField that uses a restrictive doc model
    class NumericJTextField extends JTextField {
    NumericJTextField() {this("", 0);}
    NumericJTextField(String text) {this(text, 0);}
    NumericJTextField(int columns) {this("", columns);}
    NumericJTextField(String text, int columns) {
    super(new NumericDocument(), text, columns);
    public void setValidityRange(int min, int max) {
    ((NumericDocument)this.getDocument()).setValidityRange(min, max);
    // check what may have been there already (via constructor)
    this.setText(this.getText());
    // the restricted doc model - non-numbers make it beep
    class NumericDocument extends PlainDocument {
    protected int minValue = Integer.MIN_VALUE;
    protected int maxValue = Integer.MAX_VALUE;
    public void setValidityRange(int minValue, int maxValue) {
    this.minValue = minValue;
    this.maxValue = maxValue;
    public void insertString(int offset, String text, AttributeSet a)
    throws BadLocationException {
    // digits only please (or bring your own restriction/validation)
    StringBuffer buf = new StringBuffer(text.length());
    for (int i = 0; i < text.length(); i++) {
         if (Character.isDigit(text.charAt(i))) {
         buf.append(text.charAt(i));
         } else {
         java.awt.Toolkit.getDefaultToolkit().beep();
    super.insertString(offset, buf.toString(), a);
    // get the whole "document" back for range validation
    while(true) {
    String num = this.getText(0, this.getLength());
         if (num.length() == 0) break;
         int value = Integer.parseInt(num);
         if (value >= this.minValue && value <= this.maxValue) {
         break;
         } else {
         // beeep and chop (or whatever reaction for out of range)
         java.awt.Toolkit.getDefaultToolkit().beep();
         this.remove(this.getLength() - 1, 1);
    // Note: in insertString, length is 1 when typing, but it can be anything
    // when the text comes from the constructor, when it is pasted, etc.
    }

Maybe you are looking for

  • Macbook Pro to HDTV Leads & Is It HD?

    So folks anyone with experience of setting up their Mac to a HDTV? Got a late 08 Macbook Pro. Already have one of these Do i then need on of these What about audio..? this? Thinking of trying boxee out, thats the interest really... Will the picture b

  • One page not pinching and zooming on mobile devices

    Running OS X 10.9.2 Adobe Muse CC 2014 I have uploaded a 4 page website via FTP. Originally the pages were displaying too big (wide) on mobile devices. I couldn't find a solution to this problem so I created a tablet version of the site. Doing so got

  • Authetication problem in client/server app

    I am presently developing a client/server program, and I'm wondering what will be the best form of authentication. I plan to develop a protocol for the programs, any deviation leading to socket closure. I thought about signatures, but I don't think a

  • While Updating Item master 1250000088 - Date ranges overlap; change the active or inactive date range

    hi. i am updating item master. just i am trying to update to inactive from active i allready given the date ranges but above error is comming..         Dim vItem As SAPbobsCOM.Items                     Dim RetVal As Long                     Dim ErrCo

  • Set active column of matrix using SDK

    Hi, How do i set active (FormSettings>TableFormat>Active Checkbox) column of matrix in order form using SDK? Thanks