下面是一个包含两列两行的简单表的代码。是否有人可以修改它,或者用简单的术语来解释,我如何为行标题的目的呈现最左边的列。
谢谢你。
import javax.swing.*;
import java.awt.*;
import javax.imageio.*;
import java.io.*;
import java.awt.image.BufferedImage;
import java.util.*;
public class GUITable extends JFrame{public GUITable(){
init();
}
public final void init(){
String[] columnNames = {"", "Gross Weight"};
Object[][] data = {
{"", new Integer(100)},};
final JTable table = new JTable(data, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}
GUITable ex = new GUITable();
ex.setVisible(true);
}
});
}
}
是-通过使用自定义的TableCellRenderer
,您可以修改第一列(并且仅限于第一列)的显示方式。
基本上,您可以使用它仅在第一列上设置TableCellRenderer
:
table.getColumnModel().getColumn(0).setCellRenderer(new CustomRenderer());
并且可以扩展DefaultTableCellRenderer
来处理您想要执行的任何特殊呈现:
//Custom Renderer - does the default rendering except if told the row should be a different color
public static class CustomRenderer extends DefaultTableCellRenderer{
public CustomRenderer(){
super();
//Customize the rendering however you want
setBackground(UIManager.getColor("TableHeader.background"));
}
}
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;
public class TestTable extends JFrame{
public TestTable(){
init();
}
public final void init(){
String[] columnNames = {"", "Gross Weight"};
Object[][] data = {{"", new Integer(100)},};
final JTable table = new JTable(data, columnNames);
// Add Renderer to first column only
table.getColumnModel().getColumn(0).setCellRenderer(new CustomRenderer());
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setPreferredSize(new Dimension(300, 200));
add(scrollPane);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}
TestTable ex = new TestTable();
ex.pack();
ex.setVisible(true);
}
});
}
//Custom Renderer - does the default rendering except if told the row should be a different color
public static class CustomRenderer extends DefaultTableCellRenderer{
public CustomRenderer(){
super();
//Customize the rendering however you want
setBackground(UIManager.getColor("TableHeader.background"));
}
}
}
问题内容: 与ListView不同,我们可以更新this.state.datasource。是否有任何方法或示例更新FlatList或重新呈现它? 我的目标是在用户按下按钮时更新文本值。 问题答案: 使用FlatList组件上的属性。 如文档所述: 通过传递给我们,确保更改时将重新呈现自己。如果不设置此道具,就不会知道它需要重新渲染任何项目,因为它也是a ,并且道具比较不会显示任何更改。
我有一个Pandas DataFrame,,看起来像这样: 到目前为止,我正在构建一个单一的多图表HTML文件,如下所示: 我想在之后显示亮度的高程/等高线样式图,很像我在Excel中制作的这张图: 我希望颜色作为y轴上的值保持“从上到下”的排序,而深色作为x轴上的值保持“从左到右”的排序,就像上面的例子一样。 我不是数据科学家,也不经常使用Python。我为自己首先制作了而自豪,但我并没有,就我
试图获取特定标题下的所有td(单元格) HTML: 方法: 实际结果: java.lang.IndexOutOfBoundsException:索引0超出长度0的边界 预期结果: 返回一个
问题内容: 作为我对登录功能的Selenium测试的一部分,我想通过识别按钮的坐标并指示Selenium单击这些坐标来单击按钮。无需标识元素本身即可完成此操作(通过id,xpath等)。 我知道还有其他更有效的方式来运行click命令,但是我希望专门使用这种方法来最好地匹配用户体验。谢谢。 问题答案: 硒不会让你这样做。
我正在React.js网站上浏览react教程(井字游戏),我想在用户单击它时单独设置每个正方形的样式。更具体地说,当轮到玩家 X 时,正方形应该变成红色,当轮到玩家 O 时,正方形应该变成蓝色。我试图使用道具和状态来改变颜色。但是,react 会更改所有方块,而不是单独更改方块的颜色。 以下是我迄今为止所尝试的。
问题内容: 我有一个JTable,它带有一个实现了AbstractTableModel的自定义模型。 因为我已经实现了getColumnClass方法,所以布尔值像复选框一样呈现在表中。我想拦截复选框的状态更改,但是不幸的是,我无法直接添加鼠标侦听器,因为我没有对复选框本身的引用,它不是由我创建的。 如何设置鼠标侦听器以拦截复选框状态更改事件? 编辑: @jzd答案是正确的。我可以捕获setVal