- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Java swing 开发一个应用程序,我的问题是:如果我添加一个新行,则不会调用 getTableCellRendererComponent ,我的代码:
表的创建:
public Tablecase() {
SystemeBaseConnaissance = new LESSymptomesEnsembleEt();
SystemeBaseConnaissance.lesSymptomesEnsembleEt.add("x");
initComponents();
jTable1.setTableHeader(null);
jTable1.getColumn("Title 1").setCellRenderer(new brmcellrender());
Model model = new Model();
jTable1.setModel( model);
model.addRow(new Object[]{"ss"});
System.out.println(SystemeBaseConnaissance.lesSymptomesEnsembleEt.size());
}
我的默认表模型:
class Model extends DefaultTableModel{
public Model(){
super();
this.addRow(new Object[]{"sx"} );
repaint();
}
@Override
public void addRow(Object[] rowData) {
super.addRow(rowData); //To change body of generated methods, choose Tools | Templates.
}
}
我的默认单元格编辑器:
public class brmcelleditor extends DefaultCellEditor{
public brmcelleditor(JTextField textField) {
super(textField);
}
}
public class brmcellrender extends DefaultTableCellRenderer{
public brmcellrender() {
super();
System.out.println("mefgoudabrahim20.Tablecase.brmcellrender.<init>()");
/**/
}
/*affichge */
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
System.out.println("mefgoudabrahim20.Tablecase.brmcellrender.<init>qsdqsdqsd()");
CaseOfTable cas = new CaseOfTable() ;
return ( cas) ;
}
}
最佳答案
if i'm adding a new row , the getTableCellRendererComponent not called
问题不是因为您添加了新行。
jTable1.getColumn("Title 1").setCellRenderer(new brmcellrender());
Model model = new Model();
jTable1.setModel( model);
问题在于您在设置渲染器之后设置了模型。当您设置表的模型时,TableColumnModel 和所有 TableColum 都会重新创建,这意味着您将丢失添加到 TableColumn 的自定义渲染器。
代码应该是:
Model model = new Model();
jTable1.setModel( model);
jTable1.getColumn("Title 1").setCellRenderer(new brmcellrender());
此外,您不会在每次添加行时都创建一个新模型。添加行的目的是将其添加到现有模型中。
最后,类名应该以大写字符开头。修复您的渲染器名称。
关于java - 添加新行后未调用 getTableCellRendererComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36264786/
这是我的第一个 StackOverflow 问题,所以如果我做了/问了一些非常愚蠢的事情,请宽容! 对于 Java,特别是 swing,我是个菜鸟,而且我很难理解 TableCellRenderer
我正在使用 Java swing 开发一个应用程序,我的问题是:如果我添加一个新行,则不会调用 getTableCellRendererComponent ,我的代码: 表的创建: public
为了设置特定表格单元格的颜色,我应该创建一个具有以下方法的自定义 TableCellRenderer:getTableCellRendererComponent。 此方法何时调用:getTableCe
我正在使用自定义单元格渲染器,它实现了 TableCellRenderer 并为每一行显示 JTextArea(而不是 JLabel)。我基本上用我的方法覆盖了 getTableCellRendere
您好,有一个 Jtable,其中有一列具有特定的单元格渲染模型。这种模型,只是在这一列中放置按钮而不是文本数据。 表格的第一个显示效果很好。当我使用更改内容顺序的函数时,仍会为此列调用模型(通过调用
我正在使用 setDefaultTableRenderer 设置 JTable 的渲染器。 JTable table = new JTable(); table.setDefaultRenderer(
我正在尝试实现一个JTable,它将根据单元格的类型来格式化列中的单元格。我正在实现 TableCellRenderer 的“getTableCellRendererComponent()”方法来实现
所以我知道这可能是一个重复的问题,但我已经查看了这里已经存在的许多问题,但似乎没有一个对我有用,所以我想我会发布我自己的问题,并希望发布其他一些问题对此有困难的人也会发现这很有帮助。 这是我的代码
我有一个 JTable 并且它的列之一应该显示图像;我重写了 DefaultTableCellRenderer 的 getTableCellRendererComponent 方法来执行此操作。但问题
所以我知道这可能是一个重复的问题,但我已经浏览了这里已经存在的许多问题,但似乎没有一个对我有用,所以我想我应该发布自己的问题,希望其他一些遇到此问题的人也会发现这很有帮助。 这是我的代码 ta
我正在尝试更改 JTable 中某些单元格的颜色。我尝试在一个简单的示例中重写 getTableCellRendererComponent ,并且效果很好。但是当我在我的项目中做同样的事情时,没有任何
我是一名优秀的程序员,十分优秀!