Tag: jtable

如何在JTABLE swing中添加复选框

有谁知道如何将JCheckBox放在JTable列中? 像这样的东西: 我从如何使用表中获取了这个 提前致谢。

更改Swing JTable单元格颜色

我正在尝试使用JTables,TableModels,JTableHeaders,渲染器等。我正在尝试制作一个简单的虚拟表(用于练习目的),如下所示: – 1 2 3 A A1 A2 A3 B B1 B2 B3 C C1 C2 C3 我还希望B2单元格 – 只有那个单元格 – 具有蓝色(Color.BLUE)背景 – 所有其他单元格都可以具有自动分配的Swing默认颜色。 我的代码如下,基于我在本网站和互联网上发现的无数例子。 但我没有得到我想要的结果。 相反,我得到一个看起来像这样的表: A A1 A2 A3 B B1 B2 B3 C C1 C2 C3 请注意,第一行(标题)根本不存在。 此外,使用下面列出的代码,这将执行并设置所有颜色的单元格的颜色,而不仅仅是我想要的B2单元格。 代码 : public class MyTable { public static void main(String[] args) { String[][] data […]

JTable设计与后端数据结构同步

我有一个使用表模型从数据结构加载的JTable。数据结构的格式为NavigableMap<Float,NavigableMap> 。示例数据为: Table Format: Range f1,v1 f2,v2 f3,v3 f4,v4 12.1-30.2 30,true 32,false 45,true 50,false 30.2-45.6 30,true 32.4,true 45,true 50.1,true 以上数据格式在DS中表示为 DS Format: Key Value 12.1 <,,,> 30.2 <,,,> 45.6 null 我已经设法使用table-model在Jtable中表示上面给出的数据。一旦数据从DS加载到表我必须允许用户编辑。现在我有问题。我怀疑是否应该保留数据结构与表中的更改同步,或者我应该在用户完成编辑后从表中重新创建DS,然后将其替换为旧的DS。 更多我需要validation数据(例如从上面 – 假设用户想要编辑值30.1。他应该只允许输入12.1和45.6之间的值。因为数据表是字符串的(一旦加载)我是计划使用正则表达式和键监听器,并使用所有用户键按下与正则表达式不匹配的值和不在范围内的值。我不确定这是一个好主意还是含义。我会想得到一些建议。

将jRadioButton添加到jTable中

我想将jRadioButton添加到jTable 。 我用了给定的代码 private class CustomCellRenderer extends DefaultTableCellRenderer { /* (non-Javadoc) * @see javax.swing.table.DefaultTableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) */ @Override public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) { return new javax.swing.JRadioButton(); } } 但是当我运行这个时,我得到了不同颜色的jTable列,当我点击单选按钮时没有任何反应。 我正在使用netbeans。 如果我尝试自定义jTable那么jTable不会出现任何jTable 。 给我一个适当的指导。

JTable行限制

我必须限制JTable的行数。 如果我有100条记录,我需要在初始加载JTable时显示10条。 我想放一个像”next”的按钮,每次点击后它会显示另一组10条记录。

如何在Swing中为JTable提供分页支持?

我在Swing Java中创建了一个GUI,其中我使用了JTable.Now我想通过使用分页将下一页信息显示在其中。 我该怎么做?

如何正确使用自定义渲染器绘制JTable中的特定单元格?

我的GUI中有一个JTable组件,它显示算法的psuedocode 。 我想通过更改特定单元格的背景然后更改下面的单元格等来强调当前的执行行。 现在我的代码改变了JTable中所有单元格的背景,如下图所示: 我用来存档这个当前状态的代码如下: class CustomRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JLabel d = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if((row == 0) && (column == 0)) d.setBackground(new java.awt.Color(255, 72, 72)); return d; } } 然后我调用jTable2.setDefaultRenderer(String.class, new CustomRenderer()); 在我的构造函数中。 […]

当单元格中的JComboBox中存在ItemEvent时,如何获取CellRow

我有一个JTable,其中包含一个包含JComboBox的列。 我有一个附加到JComboBox的ItemListener,它对任何更改起作用。 但是,ItemListener没有获取已更改的ComboBox所在的Row的方法。 我需要行号以便在ComboBox发生更改时对同一行中的另一列进行操作。 任何帮助,将不胜感激。 这是我的简短代码。 我想要完成的是在itemlistener获取更改时获取ComboBox的表行。 import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.IOException; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; public class Example extends JFrame { private static final long serialVersionUID = 1L; public static int maxX, maxY; public static final String[] columnHeads = {“Col 1”, “Col 2”, “Col 3”}; public static […]

使用大量行填充JTable

我想在运行时期间用很多行填充JTable(比方说10000)。 但我所有的尝试都非常糟糕且效率低下。 起点是addData方法,它获取表示行的对象列表。 我试图通过SwingWorker填充表格,但这仅适用于我的小数据。 另一种尝试是直接设置数据而不使用任何类型的线程,但这也非常慢,至少UI不像SwingWorker那样被阻止。 那你怎么做这个一般? 表应该逐行或逐行填充,但不能全部填充,垂直滚动条应同时滚动。 我的TableModel: public class MyTableModel extends AbstractTableModel { /** * */ private static final long serialVersionUID = 1L; String[] columnNames; public Map data = new LinkedHashMap(); public MyTableModel(String[] header) { columnNames = header; } public String getColumnName(int col) { return columnNames[col].toString(); } @Override public int getColumnCount() { return columnNames.length; […]

个别且不连续的JTable的小区选择

是否有任何干净的方法允许用户选择JTable的多个非连续单元格? 或者我被迫实现自己的ListSelectionModel? 我在JTable上使用setCellSelectionEnabled()和setSelectionModel()方法,但我只能选择连续单元组。 编辑: 我试过@mKorbel不错的SSCCE。 它适用于列表,但似乎没有完全在表上工作。 这是一个SSCCE: import java.awt.Component; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; public class TableSelection extends JFrame{ String[] columnNames = {“First Name”, “Last Name”, “Sport”, “# of Years”, “Vegetarian”}; Object[][] data = { {“Kathy”, “Smith”, “Snowboarding”, new Integer(5), new Boolean(false)}, {“John”, “Doe”, “Rowing”, new Integer(3), new […]