Article View: borland.public.jbuilder.java.swing
Article #10016Re: JB3 Bug? DecFrame + JTable cell renderer problems
From: Greg Hamer
Date: Fri, 19 Nov 1999 00:00
Date: Fri, 19 Nov 1999 00:00
129 lines
4805 bytes
4805 bytes
JComboBox only works inside containers that have a JRootPane as the drop
downlist uses the LayeredPane. So it will work in things that extend JFrame
or JDialog but not things that just extend Frame or Dialog.
bl wrote:
> Where is the appropriate place to submit a bug report or look for other
> existing bug reports?
>
> I have been unable to get JB3 to allow me to put a combo box inside a
> table cell/column if I use DecoratedFrame as the top level frame. The
> programs compile and run, but clicking on the dropdown control causes
> a brief flash of the menu, it never becomes accessible.
>
> Here is the simplest version of the code I was able to create that shows
>
> the problem.
>
> Taking this code and simply replacing "DecoratedFrame" with "JFrame"
> and then adding the 2 appropriate "getContentPane()" calls, makes it
> work fine. The code here, when compiled on my system, will not let
> me access the ComboBox. Is there something I'm not understanding about
> the interactions between Swing components and JB components?
>
> thanks for any help,
> b
> blincoln@ssesco.com
>
> --
>
> import java.awt.*;
> import java.awt.event.*;
> import com.borland.jbcl.control.*;
> import com.borland.jbcl.layout.*;
> import javax.swing.*;
> import javax.swing.table.*;
>
> public class Frame1 extends DecoratedFrame {
> XYLayout xYLayout2 = new XYLayout();
> BevelPanel bevelPanel1 = new BevelPanel();
> BorderLayout borderLayout1 = new BorderLayout();
> JScrollPane jScrollPane1 = new JScrollPane();
> JTable jTable1;
>
> //Construct the frame
> public Frame1() {
> try {
> jbInit();
> }
> catch(Exception e) {
> e.printStackTrace();
> }
> }
>
> //Component initialization
> private void jbInit() throws Exception {
> jTable1 = new JTable(new MyTableModel());
> this.setLayout(borderLayout1);
> this.setSize(new Dimension(529, 360));
> TableColumn column = null;
> SetUpPopup(jTable1.getColumnModel().getColumn(3));
> bevelPanel1.setLayout(xYLayout2);
> this.add(bevelPanel1, BorderLayout.CENTER);
> bevelPanel1.add(jScrollPane1, new XYConstraints(16, 50, 468, 101));
> jScrollPane1.getViewport().add(jTable1, null);
>
> }
> //File | Exit action performed
> public void fileExit_actionPerformed(ActionEvent e) {
> System.exit(0);
> }
> class MyTableModel extends AbstractTableModel
> {
> final String[] columnNames = { "A", "B", "C", "D", "E" };
> String [][] Data = { { "11","12","13","14","15"} ,
> {"21","22","23","24","25"} } ;
> public int getColumnCount() { return columnNames.length; }
>
> public int getRowCount() { return 2; }
>
> 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();
> }
>
> /*
> * Don't need to implement this method unless your table's
>
> * editable.
> */
> public boolean isCellEditable(int row, int col)
> { return true; }
>
> public void setValueAt(Object value, int row, int col)
> { Data[row][col] = (String) value;
> }
> }
>
> public void SetUpPopup(TableColumn myCol)
> {
> //Set up the editor for the Num Bytes cells.
> JComboBox JCB = new JComboBox();
> JCB.addItem("4");
> JCB.addItem("2");
> JCB.addItem("1");
> JCB.addItem("this is too");
> myCol.setCellEditor(new DefaultCellEditor(JCB));
> DefaultTableCellRenderer renderer = new
> DefaultTableCellRenderer();
> myCol.setCellRenderer(renderer);
>
> }
>
> public static void main(String[] args) {
> Frame1 frame = new Frame1();
> if (packFrame)
> frame.pack();
> else
> frame.validate();
> frame.setVisible(true);
> }
> }
Technical Details
Message-ID:
<3835BD8B.3380B7EE@borland.com>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<3834C9F0.3AE307BE@ssesco.com>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 111d45,8a61be33a47042dd X-Google-Attributes: gid111d45,public From: Greg Hamer <ghamer@borland.com> Subject: Re: JB3 Bug? DecFrame + JTable cell renderer problems Date: 1999/11/19 Message-ID: <3835BD8B.3380B7EE@borland.com> X-Deja-AN: 550695216 Content-Transfer-Encoding: 7bit References: <3834C9F0.3AE307BE@ssesco.com> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Organization: Another Netscape Collabra Server User Mime-Version: 1.0 Newsgroups: borland.public.jbuilder.java.swing