Tag: jtable

自动调整JTable列宽的大小

我需要我的JTable自动重新调整其列宽以适应内容。 我发现TableColumnAdjuster类非常有用。 但是有一个小问题。 假设我有5列,其内容非常短。 在这种情况下,如果我使用自动调整器,它会根据内容设置前四列宽度,并将所有剩余空间提供给最后一列。 请看这个例子。 这里是最后一列, Balance给出了所有多余的空间。 但是,如果我需要将该空间提供给其中一个中间列,该怎么办呢? 在上面的例子中,我需要将该空间分配给第三列name 。 我尝试修改TableColumnAdjuster类的adjustColumns()方法。 但我无法让它发挥作用。 我尝试了column.setPreferredWidth()和column.setWidth()来更改列大小。 但似乎它没有改变任何东西。 如何有效地更改JTable的列大小。 如果对我的主要问题有其他替代或直接答案,那就更好了。 谢谢!

将Jbutton添加到Jtable的每一行

我需要你的帮助,我想在Jtable的每一行添加一个Jbutton(删除按钮)。 直到现在,我已将按钮添加到每一行,但我对该操作有疑问。 我尝试过这个,但它不起作用。 当我点击按钮时没有任何反应。 任何人都可以帮助我,我真的是堆栈。 这是我的代码: `public class Fenetre extends JFrame { Statement stmt; Map row_table = new HashMap(); JButton addUser; public Fenetre(){ this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle(“JTable”); this.setSize(600, 140); String requeteListeUser=” SELECT * FROM COMPTE_UTILISATEUR”; try{ stmt= (Statement) new Connexion().getConnection().createStatement(); ResultSet resultat= stmt.executeQuery(requeteListeUser); resultat.last(); String title[] = {“Nom”,”Prenom”,”Matricule”,”Action”}; int rowCount = resultat.getRow(); Object[][] data = new […]

将多个JProgressBar添加到JTable的TableColumn

我在JTable TableColumn中添加了多个JProgressBar 。 在进行某些计算后,我正在使用数据更新所有JProgressBar,但只添加了最后一个ProgressBar (在本例中为ProgressBar progressObj4 )。 如何更新所有ProgressBar ? 基本要求是我在上传时显示进度条中的文件状态。 目前我正在硬编码4个进度条以测试所有进度条是否正在更新文件的状态,但我需要动态创建它们。 进度条总数没有上传的文件数。 另外,如何获取进度条的各个实例并更新其状态? 我附加了添加到表列的进度条的源代码。 //tc = object of TableColumn progressObj1 = new ProgressBarRenderer(“Progress1”); progressObj1.setValue(0); progressObj1.setStringPainted(true); progressObj1.setBackground(Color.WHITE); progressObj1.setBorderPainted(true); tc.setCellRenderer(progressObj1); progressObj2 = new ProgressBarRenderer(“Progress2”); progressObj2.setValue(0); progressObj2.setStringPainted(true); progressObj2.setBackground(Color.WHITE); progressObj2.setBorderPainted(true); tc.setCellRenderer(progressObj2); progressObj3 = new ProgressBarRenderer(“Progress3”); progressObj3.setValue(0); progressObj3.setStringPainted(true); progressObj3.setBackground(Color.WHITE); progressObj3.setBorderPainted(true); tc.setCellRenderer(progressObj3); progressObj4 = new ProgressBarRenderer(“Progress4”); progressObj4.setValue(0); progressObj4.setStringPainted(true); progressObj4.setBackground(Color.WHITE); progressObj4.setBorderPainted(true); tc.setCellRenderer(progressObj4);

如何在DefaultTableModel / JTable中合并单元格?

我搜索了很多并得到了这个Q的答案。但是他们中的许多人都提到了404错误的链接。 我想制作这样的表格: java中有没有这方面的方法?

无法将列宽设置为零,即不使列不可见

我试图从JTable创建一个列,通过将宽度设置为零而不可见但是它不会发生并且它仍然可见width = 15.这是代码 – public void restoreColumnWithWidth(int column, int width) { try { TableColumn tableColumn = table.getColumnModel().getColumn(column); table.getTableHeader().setResizingColumn(tableColumn); tableColumn.setWidth(width); tableColumn.setMaxWidth(width); tableColumn.setMinWidth(width); tableColumn.setPreferredWidth(width); } catch (Exception ex) { } } 代码有什么问题?

进度条Java

我正在使用JProgressBar来显示进度。 但是,如何将progressBar显示为从0加载到100? 我从互联网及其工作中获得了代码,除了progressBar没有加载。 码 progressFrame = new JFrame(); // frame to display progress bar progressBar = new JProgressBar(0,100); progressBar.setValue(0); progressBar.setStringPainted(true); progressFrame.add(progressBar); new SwingWorker() { protected Void doInBackground() throws SQLException, ClassNotFoundException { Class.forName(“oracle.jdbc.driver.OracleDriver”); progressBar.setValue(0); frame.setEnabled(false); // frame = main frame //tableclass creates a JTable with data from database tableclass = new TheDatabaseTable(deptName);//it takes time to create […]

如何将JTable单元格输入标记为无效?

如果我使用JTable并在其模型上指定列的classtype,如下所示: DefaultTableModel model = new DefaultTableModel(columnNames, 100) { @Override public Class getColumnClass(int columnIndex) { return Integer.class; }}; 然后,每当用户尝试在表格中输入double值时,Swing会自动拒绝输入并将单元格的轮廓设置为红色。 当某人输入单元格的“负数或0”输入时,我希望发生相同的效果。 我有这个: @Override public void setValueAt(Object val, int rowIndex, int columnIndex) { if (val instanceof Number && ((Number) val).doubleValue() > 0) { super.setValueAt(val, rowIndex, columnIndex); } } } 这可以防止单元格接受任何非正值,但不会将颜色设置为红色并使单元格保持可编辑状态。 我试着调查JTable默认情况下是如何做出拒绝的,但我似乎无法找到它。 如何拒绝非正输入与拒绝非整数输入相同? 谢谢

在JTable中更改一个单元格的背景颜色

可能重复: 更改Swing JTable单元格颜色 我开发了一个显示JTable的swing应用程序。 我希望当用户修改单元格值时,单元格修改了更改颜色。 这是我在用户修改单元格时运行的代码: this.myTable.getColumnModel().getColumn(column).setCellRenderer(new StatusColumnCellRenderer()); 这是我的单元格Render类的代码: public class StatusColumnCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { //Cells are by default rendered as a JLabel. JLabel l = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col); //Get the status for the current […]

如何在JTable单元中单击JButton?

我有一个带有自定义单元格渲染器的JTable。 该单元格是一个包含JTextField和JButton的JPanel。 JTextField包含一个整数,当用户单击JButton时,应该增加整数。 问题是当我在JTable单元格中使用它时,无法单击JButton。 如何使其可点击? 这是我的测试代码: public class ActiveTable extends JFrame { public ActiveTable() { RecordModel model = new RecordModel(); model.addRecord(new Record()); JTable table = new JTable(model); EditorAndRenderer editorAndRenderer = new EditorAndRenderer(); table.setDefaultRenderer(Object.class, editorAndRenderer); table.setDefaultEditor(Object.class, editorAndRenderer); table.setRowHeight(38); add(new JScrollPane(table)); setPreferredSize(new Dimension(600, 400)); pack(); setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle(“Active Table”); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new […]

如何使用数据库填充JTable中的数据?

我想显示一个JTable,它按原样显示DataBase表中的数据。 到目前为止,我已经使用了JTable来显示来自Object [] []的数据。 我知道显示数据的一种方法是首先将数据库表转换为Object [] []但是还有其他任何容易但更强大和灵活的方法。