Tag: jtable

如何在没有帧重载的数据库操作后刷新JTable?

我想在执行db操作之后刷新JTable ,例如插入/更新/删除而没有帧重新加载。 有这样的程序化解决方案吗?

从JTable获取DefaultTableModel

我想从JTable获取DefaultTableModel然后添加Column。 我在JTable中搜索但只找到getModel()方法。然后无法添加Column。 最后说我在JTable中使用Binding方法设置Date,然后没有DefaultTableModel,我想要添加列内容JButton添加到My JTable。

如何动态添加列并使用java swing中的数据填充新添加的列

我首先创建了一个Jtable(通过netbeans GUI),其中包含单列和6行(空列)。 接下来,我使用以下命令动态添加了一列 summaryTableForVAriousSm.getColumnModel().addColumn(new TableColumn()); 在运行应用程序时,我可以看到该列是动态创建的。 所以我想使用命令将数据添加到新创建的列中 summaryTableForVAriousSm.setValueAt(“1000”, 1, 1); (类似地,所有其他6行按列填充)此更改也反映在应用程序的运行中,但问题是在新创建的列中插入的数据也在第0列中被覆盖(如果存在任何数据) 。 为什么一列中的更改正在另一列中反映出来。 另外,如何将它们分开,以便一列中的更改不会影响其他列中的数据。

如何为JTable中的特定行着色

我希望能够突出显示某些JTable行,具体取决于行本身的值。 例如,如果现有的qty < reorder level ,那么该行应该在JTable突出显示。 我知道有一个表方法tblItems.setSelectionBackground(Color.yellow); 在选择行时有效,但有没有类似的方法不依赖于被选中的行以使它们以不同的颜色显示? public class MyTableCellRenderer implements TableCellRenderer { @Override public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Object ob=table.getValueAt(row, column); if(ob.toString().equals(“yes”)){ //need to colour the entire row } return } }

如何从(SQLite)数据库加载的JTable中插入,更新和删除项目

我目前有2个类,一个显示GUI,一个是从数据库中获取项目。 我的代码如下: 此代码用于在GUI中显示JTable public void table() { if(SOMR.tableCall() == true) { this.columnNames = SOMR.getCol(); this.data = SOMR.getData(); JTable table = new JTable(data, columnNames) { 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; […]

如何将字体颜色应用于使用DefaultTableModel的JTable上的特定单元格

我正在尝试创建一个连接到MS Access的简单To-Do列表Java应用程序,我使用JTable和DefaultTableModel来显示列表。 我想通过在单击按钮时更改其颜色来标记已完成的任务。 我有一个名为’ completed ‘的布尔字段作为指标。 String header[] = {“priority”, “task”}; String data[][]; DefaultTableModel model = new DefaultTableModel(data, header); JTable table = new JTable(model); // to be replaced with code that affects only specific cells not the whole table table.setFont(customFont); 我已经有一个名为customFont的Font对象,可以应用它。 我的问题是,如何将它仅应用于已完成== true的特定单元格。 我们非常感谢示例代码。

在jTable中设置jCheckBox不可见

我有一个带有两列的jTable 。第一列设置为布尔值(用于复选框),第二列设置为字符串值。当我使用Netbeans ,复选框被添加到第一列的所有行中。 我试图仅为那些在第二列中具有值的行添加它。 我用代码试了一下, 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) { Component rendererComp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,row, column); for(int i=row;i<jTable1.getRowCount();i++){ if(jTable1.getValueAt(i, 1)==null){ jTable1.setValueAt(true, i, 0); //checkbox.setOpaque(false); } } […]

作为JTable-CellEditor的JTextArea-Dialog错过了第一个输入的字符

我们需要一个用于JTable的CellEditor来编辑大型多行文本。 我们尝试使用一个可视化扩展TableCell的弹出TableCell ,它将细胞重叠到右边和底部。 如果电池位于右下角,屏幕边界附近等,则会导致各种问题。 然后我们决定使用模态JDialog来编辑单元格值。 因此用户可以移动对话框,我们可以坚持其大小和位置。 现在问题开始了;-) 我们无法将第一个键入的字符“转发”到Dialog。 有很多关于堆栈溢出的例子,这个问题是针对自定义CellEditor解决的,它直接显示在Table(Cell)中,例如: 在基于JTable面板的单元格编辑器中丢失第一个字符 以下SSCCE(来自camickrs的回答: https ://stackoverflow.com/a/3591230/361227)显示第二个TableColumn中的第一次击键大部分时间都会丢失。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Frame; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultCellEditor; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; /** * Example taken from this […]

包装线,右对齐,自动调整JTable中的行高

我编写了一个Java应用程序,我需要一个JTable类的对象,它具有一些特性: 自动包装线 正确对齐 自动调整行高(这意味着例如行的大小为25,但表中另一行的大小为50,内容大小为行) 渲染速度必须很高 但是我的代码不能快速完成并且没有完全的顶级function,我在最后一个问题中编写了我的应用程序的最小版本: 这是我的gui课程: import javax.swing.*; import java.awt.*; public class GUI extends JFrame { private BankTable table; private JScrollPane scrollPane; public GUI(){ super(“Bank Table”); JPanel contentPanel = new JPanel(); setContentPane(contentPanel); contentPanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); setLayout(new BorderLayout()); setMinimumSize(new Dimension(1000,700)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); makeTable(); scrollPane = new JScrollPane(table); scrollPane.getVerticalScrollBar().setUnitIncrement(50); add(scrollPane,BorderLayout.CENTER); setVisible(true); } public void makeTable(){ String[][]data= new String[][]{{“0212670003009”, “ص […]

JTable单元格返回null

我在JTable单元格中使用JTextField ; 我使用TabelModel ,它具有JTable的动态数据。 现在,当我点击一个按钮时,我正在读取一个单元格值。 问题是具有当前焦点的单元格不返回更新的值。 例如,考虑这个程序: import java.awt.BorderLayout; import java.awt.Component; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class MyTable extends JFrame { DefaultTableModel tmodel = new DefaultTableModel(new Object[][]{ {“some”}, {“any”}, {“even”}, {“text”}, {“and”}, {“”}}, new Object[]{“Column 1”}); public […]