Tag: jtable

以编程方式在JTable中select一行

当应用程序启动时,没有任何行被选中。 但是我想表明第一行已经被选中。 这个怎么做? 我需要在JTable设置一行的颜色吗? 更新:我试过table.setRowSelectionInterval(0,0)。 我知道它应该工作,但有一个错误消息: Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Row index out of range at javax.swing.JTable.boundRow(Unknown Source) at javax.swing.JTable.setRowSelectionInterval(Unknown Source) at cpn_gui.OptPanel.createForm(OptPanel.java:124) at cpn_gui.OptPanel.<init>(OptPanel.java:50) at cpn_gui.Login$1.actionPerformed(Login.java:62) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) […]

JTable滚动到指定的行索引

我有一个JScrollPane.的JTable JScrollPane. 根据我的应用程序中发生的事件,行在运行时添加到表中。 当一个新行添加到表中时,我希望将scoll窗格滚动到表的底部。 对于JLists有[ensureIndexIsVisible][1]()强制列表中的特定索引是可见的。 我正在寻找同样的事情,但对于JTable。 它看起来像我可能需要手动移动滚动窗格上的滚动视图,但我觉得必须有一个更简单的方法。

JTable,禁用用户列拖动

我已经将我的JTable声明为: data_table = new JTable(info, header) { @Override public boolean isCellEditable(int row, int column) { return false; } }; 但我已经看到,在运行时可以用鼠标拖动列 。 我如何禁用?

JTable将不显示列标题

我有以下代码来实例化一个JTable:表中出现了正确数量的行和列,但没有标题顶部的标题。 public Panel1() { int nmbrRows; setLayout(null); setBackground(Color.magenta); Vector colHdrs; //create column headers colHdrs = new Vector(10); colHdrs.addElement(new String("Ticker")); //more statements like the above to establish all col. titles nmbrRows = 25; DefaultTableModel tblModel = new DefaultTableModel(nmbrRows, colHdrs.size()); tblModel.setColumnIdentifiers(colHdrs); scrTbl = new JTable(tblModel); scrTbl.setBounds(25, 50, 950, 600); scrTbl.setBackground(Color.gray); scrTbl.setRowHeight(23); add(scrTbl); //rest of constructor … } […]

Java JTable设置列宽

我有一个JTable,其中我设置列大小如下: table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.getColumnModel().getColumn(0).setPreferredWidth(27); table.getColumnModel().getColumn(1).setPreferredWidth(120); table.getColumnModel().getColumn(2).setPreferredWidth(100); table.getColumnModel().getColumn(3).setPreferredWidth(90); table.getColumnModel().getColumn(4).setPreferredWidth(90); table.getColumnModel().getColumn(6).setPreferredWidth(120); table.getColumnModel().getColumn(7).setPreferredWidth(100); table.getColumnModel().getColumn(8).setPreferredWidth(95); table.getColumnModel().getColumn(9).setPreferredWidth(40); table.getColumnModel().getColumn(10).setPreferredWidth(400); 这工作正常,但是当表最大化时,我得到最后一列右侧的空白空间。 resize后,是否可以将最后一列调整到窗口的末尾? 我在文档中find了AUTO_RESIZE_LAST_COLUMN属性,但不起作用。 编辑: JTable在JScrollPane中设置了它的首选大小。

如何在Swing的JTable列中添加不同的JComboBox项目

我想在第一列的JTable(3,3)中添加JComboBox。但是在第一列中,每一行都有自己的一组ComboBox元素。 当我尝试使用 table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(comboBox_Custom)); 每行都被设置为相同的一组ComboBox值。 但是我希望每行ComboBox都有不同的项目。

创builddynamic表添加新的条目与button

我正在尝试构build一个registry,以便在单击一个button时,表中会出现一个新的条目。 理想情况下,我正在寻找在屏幕左侧build立一个表,当点击button时会出现两行和一个新的列。 我希望表格具有固定大小,但是在一定数量的条目之后它应该是可滚动的。 到目前为止,我已经创build并格式化了我想要单击的JButton对象,以显示新条目。 我也知道我应该使用JTable来追求这一点。 我应该如何去做这个dynamic表? Code至今: private void addRegister(JPanel pane) { JPanel everythingPane = new JPanel(); JPanel pluPane = new JPanel(); Dimension button = new Dimension(200,150); JTable pluTable = new JTable(); JPanel buttonPane = new JPanel(); buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.Y_AXIS)); //JPanel buttonPane = new JPanel (new FlowLayout (FlowLayout.LEFT)); JPanel subPane1 = new JPanel(); subPane1.setAlignmentX(LEFT_ALIGNMENT); JPanel […]

Java,将单元格内容更改为同一行中另一个单元格的function

我需要一些帮助解决我的问题。 我有一个表,例如一个双列和一个string列。 如果双列中的值是负数,则string应该是“negativ”。 而另一种方式,如果价值是积极的,string应该是“positiv”。 现在的问题是,如果我编辑jTable中的double值,该string也应该更新。 更新我的问题,实际的代码看起来像这样:但它不起作用,因为在我编辑第一列值后,第二列中的string将不会更新。 只有在我第一次启动程序时才有效。 import java.util.Vector; import javax.swing.*; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.*; public class ExampleRemoveAddRows extends JFrame { private Object[] columnNames = {"Double", "positiv / negativ"}; private Object[][] data = { {new Double(10.0), "positiv"}, {new Double(-10.0), "negativ"}, {new Double(20.0), "positiv"}, {new Double(-30.0), "negativ"} }; private JTable table; private DefaultTableModel model; […]

JTable getSelectedRow不返回选定的行索引

我尝试获取所选行的数据,但getSelectedRow()不起作用。 实际上,我在另一个class里使用了这个方法,但是在那里工作。 当我尝试打印行索引时; 提示符显示-1; 因为没有select。 我尝试了大多数在互联网上的解决scheme,但他们并没有解决我的解决scheme。 public Canteen() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.getContentPane().setLayout( null ); this.setSize( new Dimension(400, 300) ); this.setTitle( "CANTEEN" ); jScrollPane1.setBounds(new Rectangle(0, 0, 230, 235)); jButton1.setText("REFRESH"); jButton1.setBounds(new Rectangle(0, 235, 100, 20)); jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent […]

将JTable放在JTree中

在连接线程Jtable作为Jtree节点我把JTable JTree,但JTree视图不能正确呈现在start_up,我怎么能setPreferredSize JTable ,因为PreferredScrollableViewportSize收缩JTable与呈现TableHeader +一行,一行保持隐藏,但扩展Node(s)TreeRenderer更改并将setPreferredSize重新绘制为预期的Dimension import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.tree.*; public class TreeWithTableRenderer extends JFrame { private static final long serialVersionUID = 1L; private JTree tree; public TreeWithTableRenderer() { DefaultMutableTreeNode AA1 = new DefaultMutableTreeNode("AA1"); DefaultMutableTreeNode AA2 = new DefaultMutableTreeNode("AA2"); DefaultMutableTreeNode A = new DefaultMutableTreeNode("A"); A.add(AA1); A.add(AA2); DefaultMutableTreeNode BB1 = new DefaultMutableTreeNode("BB1"); DefaultMutableTreeNode […]