swing - Java JTable Problems -
i've scoured internet looking bits , pieces of solution problem, haven't seemed come yet, , i've been struggling solve this.
in short, need create jdialog embeds jtable. jtable has dynamic in regards amount of columns. also, i'd first 2 rows of jtable have combo boxes in each of cells. row 1 has same combo box, , row 2 has same combo box, different row one. there, i'm filling in static text data set number of other rows. table should of form:
combo, combo, combo, combo, ...
combo, combo, combo, combo, ...
text, text, text, text, ...
i'm having lot of trouble a) making column number dynamic (it depend on array passed) , b) making first 2 rows combo boxes - way can find anywhere makes entire column combo boxes.
if helps @ all, i'm using netbeans ide. thank in advance time, , if further knowledge needed, let me know.
how can return tablecelleditor returning jcombobox?
import java.awt.*; import java.awt.event.*; import java.util.list; import java.util.arraylist; import javax.swing.*; import javax.swing.border.*; import javax.swing.table.*; public class tablecomboboxbyrow extends jframe { list<tablecelleditor> editors = new arraylist<tablecelleditor>(3); public tablecomboboxbyrow() { // create editors used each row string[] items1 = { "red", "blue", "green" }; jcombobox combobox1 = new jcombobox( items1 ); defaultcelleditor dce1 = new defaultcelleditor( combobox1 ); editors.add( dce1 ); string[] items2 = { "circle", "square", "triangle" }; jcombobox combobox2 = new jcombobox( items2 ); defaultcelleditor dce2 = new defaultcelleditor( combobox2 ); editors.add( dce2 ); string[] items3 = { "apple", "orange", "banana" }; jcombobox combobox3 = new jcombobox( items3 ); defaultcelleditor dce3 = new defaultcelleditor( combobox3 ); editors.add( dce3 ); // create table default data object[][] data = { {"color", "red"}, {"shape", "square"}, {"fruit", "banana"}, {"plain", "text"} }; string[] columnnames = {"type","value"}; defaulttablemodel model = new defaulttablemodel(data, columnnames); jtable table = new jtable(model) { // determine editor used row public tablecelleditor getcelleditor(int row, int column) { int modelcolumn = convertcolumnindextomodel( column ); if (modelcolumn == 1 && row < 3) return editors.get(row); else return super.getcelleditor(row, column); } }; jscrollpane scrollpane = new jscrollpane( table ); getcontentpane().add( scrollpane ); } public static void main(string[] args) { tablecomboboxbyrow frame = new tablecomboboxbyrow(); frame.setdefaultcloseoperation( exit_on_close ); frame.pack(); frame.setvisible(true); } }
Comments
Post a Comment