带有JTable的javagui
我通过JList中的鼠标事件在JTable中显示数据。我想知道在用户单击JLIst后如何更改特定数据的字体颜色,下面是所需结果的照片带有JTable的javagui,java,swing,Java,Swing,我通过JList中的鼠标事件在JTable中显示数据。我想知道在用户单击JLIst后如何更改特定数据的字体颜色,下面是所需结果的照片 list.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { int solutionindex =list.getSelectedIndex(); i
list.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int solutionindex =list.getSelectedIndex();
if(solutionindex==0) {
for (int i=0;i<table.getRowCount();i++) {
for (int j=0;j<table.getColumnCount();j++) {
table.setValueAt(b.charAt(i, j), i,j);
}// end of second for loop
}// end of for loop
}
else {
for (int i=0;i<table.getRowCount();i++) {
for (int j=0;j<table.getColumnCount();j++) {
table.setValueAt(solutions.get(solutionindex1).getBoard().charAt(i, j), i,j);
}// end of second for loop
}// end of for loop
}
table.setDefaultRenderer(String.class, new DefaultTableCellRenderer(){
@Override
public java.awt.Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) {
java.awt.Component c = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
c.setForeground(Color.red);
return c;
}
});
list.addMouseListener(新的MouseAdapter(){
@凌驾
公共无效鼠标单击(鼠标事件arg0){
int solutionindex=list.getSelectedIndex();
如果(solutionindex==0){
对于(int i=0;i使用ListSelectionModel
而不是JList
上的MouseStener
(JList
将在某个地方使用MouseStener
来更改状态。(这真让人困惑。)
将表[model]中的对象从字符
切换为包含文本和前景颜色的新类型。在表单元格渲染器中,将单元格对象强制转换为正确的类型,并在设置前景
中使用其颜色取决于表中的组件,对于按钮,请使用setTextColor().对于JLabel,setForeground(),到目前为止您尝试了什么?我正在直接设置JTable的值,没有任何其他组件,只设置JTale.setValue(value,numRow,numCol)我尝试编写If语句,并再次在值上设置前景,但没有成功。