- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
Hovercraft Full of Eels 已经为我提供了 TableCellRenderer,但现在:我可以毫无问题地画一个圆。我只是对原始 ImageIcons(在所有单元格内)如何被空单元格和黑色圆圈覆盖感到困惑。
上海商会:
package sccee;
import java.awt.Graphics;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.SwingWorker;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
public class SCCEE extends JFrame {
private JTable spelbordTabel;
URL url = this.getClass().getResource("/resources/leeg.png");
ImageIcon leeg = new ImageIcon(new ImageIcon(url).getImage().getScaledInstance(100, 100, java.awt.Image.SCALE_SMOOTH));
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(() -> {
SCCEE testFrame = new SCCEE();
testFrame.setBounds(0, 0, 700, 700);
testFrame.setVisible(true);
});
}
public SCCEE() {
initComponents();
updateTableImages();
}
private void initComponents() {
spelbordTabel = new javax.swing.JTable();
spelbordTabel.setModel(new DefaultTableModel(new Object[][]{
{null, null, null, null, null, null, null},
{null, null, null, null, null, null, null},
{null, null, null, null, null, null, null},
{null, null, null, null, null, null, null},
{null, null, null, null, null, null, null},
{null, null, null, null, null, null, null},
{null, null, null, null, null, null, null},},
new String[]{
"Title 1", "Title 2", "Title 3", "Title 4", "Title 5", "Title 6", "Title 7"
}) {
@Override
public Class
getColumnClass(int columnIndex) {
return ImageIcon.class;
}
boolean[] canEdit = new boolean[]{false, false, false, false, false, false, false};
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
});
spelbordTabel.setAutoscrolls(false);
spelbordTabel.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
spelbordTabel.setOpaque(false);
spelbordTabel.setRequestFocusEnabled(false);
spelbordTabel.setRowHeight(100);
spelbordTabel.setRowSelectionAllowed(false);
spelbordTabel.setTableHeader(null);
spelbordTabel.setUpdateSelectionOnSort(false);
spelbordTabel.setVerifyInputWhenFocusTarget(false);
spelbordTabel.setBounds(0, 0, 700, 700);
spelbordTabel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 4, true));
spelbordTabel.setDragEnabled(true);
spelbordTabel.setVisible(true);
spelbordTabel.getColumn("Title 1").setCellRenderer(
new DefaultTableCellRenderer() {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillOval(30, 30, 20, 20);
}
}
);
add(spelbordTabel);
}
public void updateTableImages() {
SwingWorker<Void, Void> worker2 = new SwingWorker<Void, Void>() {
@Override
protected Void doInBackground() throws InterruptedException {
Thread.sleep(50);
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
spelbordTabel.setValueAt(leeg, i, j);
}
}
return null;
}
};
worker2.execute();
}
}
我遗漏了什么明显的东西吗? (第一次摆弄 tablecellrenderers)。
最佳答案
我不是 100% 清楚您的实际问题是什么,但相信您的问题可以通过为您的 JTable 创建自定义表格单元格渲染器来解决,这样每个单元格都可以绘制所需的任何圆圈。
关于java - 覆盖 CellRenderer,ImageIcon 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23700756/
如何使 JTable 中的文本变为粗体,我尝试了以下方法,它确实适用于颜色,但为了使文本变为粗体,我在某处出错了 class ColourRender extends DefaultTable
我创建了自己的 CellRenderer,它在 JList 项中包含一些字符串和一个 JProgressBar ...但是 JProgressBar 和整个 JList 项将绘制一次,我正在寻找一种重
我正在尝试实现一个根据整数值改变颜色的单元渲染器。然而,细胞的颜色仅在聚焦时才会改变。见下图。 @Override public Component getTableCellRendererCompo
我已经尝试了一段时间并在互联网上寻找解决方案,但我失败了。我想做的是动态更改 Jtable 的行背景。我创建了 arrayList,它保留所选行的数量(每次用户按 alt+单击单元格时添加它们)并在我
这个问题已经有答案了: Coloring particular rows according to the first column values in JTable? (1 个回答) 已关闭 9 年
我有一个JTable,每次选择一个单元格时,我都想打印它的行和列索引。由于这个原因,我使用 getSelectedRow() 和 getSelectedColumn() 方法。运行下面的代码: 测试时
我有一个 gtk.TreeViewColumn,其中包含 14 个 gtk.CellRendererPixbuf 属性。其中大多数大部分时间都是空的(关联的 TreeStore 值为 None)。 这
简单来说:为什么下面的小例子在树形控件的第三项上没有显示浅灰色背景? 代码创建了一个 JTree,用三个字符串填充它(直接传递给构造函数)并重写 getCellRenderer() 方法以返回自定义
我使用 cellRenderer 来更改单元格(列)背景颜色,但它也会将单元格值格式更改为图像上的左列,我会将默认格式保留为图像上的右列,这里是我的简单代码: DefaultTableCellRend
在我的 PyGTK 应用程序中,我目前使用“可编辑”来使单元格可编辑。但是由于我的单元格内容有时真的非常大,所以我想在用户双击单元格时要求用户在新窗口中进行更改。但我无法找到如何 Hook 双击特定的
我用组合框制作了一个用户界面。我正在使用glade,所以我在运行时执行以下操作 combo_box.set_model(liststore) cell = gtk.CellRendererText()
我有一个表格,我的列在其中动态扩展。最初我将表模型设置为有 5 列,因为基本信息有 5 列。在 5 列中,第 2 列和第 3 列是按钮(实际上它们是按钮形式的超链接),这意味着我已将第 2 列和第 3
我正在使用 Itext7 创建一个包含表格的 pdf。 表格占多页。 我还重写了单元格渲染器以将表单域添加到某些单元格。 我注意到当表格转到新页面时,第一行不会触发 CellRender 类的 dra
我有一个内联 cellRenderer 可以修改单元格值,如下所示: cellRenderer: function (params) { if(params.value) { return
我创建了扩展 JTable 的 ColumnAutofitTable,引用 http://tips4java.wordpress.com/2008/11/10/table-column-adjuste
所以我一直在尝试使用教程中的示例并对其进行更改,以使其适合我的程序。getColumnValue 方法返回保存应显示信息的对象。这是要走的路还是应该返回要显示的实际字符串。我想不是,因为这样我会将演示
我有一个带有 cellrenderer 的 JTable,我的表是不可编辑的。当我选择一个单元格并复制 (ctrl-c) 值时,它的复制不是单元格中显示的,而是复制存储在模型中的值。如何复制表格中显示
嗨,我已经创建了自己的渲染器。我希望背景应该是蓝色的。我也将背景颜色设置为蓝色。但我不知道我的渲染器的背景颜色似乎总是白色是什么问题。 我已经发布了代码。请帮助我错误的地方,使背景颜色变成白色。 cl
//新手问题 我有一个带有几乎基本单元格渲染器的 JTable(它以不同的方式为线条着色)。我注意到我的单元格渲染器一直在为屏幕上显示的行运行,即使我没有对表格做任何事情。 事情就该这样吗?它不应该对
我正在尝试为 JTable 的特定列获取自定义工具提示。我已经创建了一个 CellRenderer(其中我已经成功地更改了其他特定于单元格的属性): private class CustomCellR
我是一名优秀的程序员,十分优秀!