このような私の質問:私はJTableを持っており、JProgressBarを1つの列に配置しましたが、それはセル全体を埋めます。
JProgressBarのサイズを設定して、セルの境界線でマージンを付けて表示するようにします。
私のJProgressBarコード:
private final JProgressBar b;
public ProgressBarRender(){
super();
setOpaque(true);
b = new JProgressBar();
b.setStringPainted(true);
b.setMinimum(0);
b.setMaximum(100);
b.setBorderPainted(true);
b.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
//b.setPreferredSize(new Dimension(1,1));
b.setOpaque(true);
//TODO
//b.setForeground(Color.magenta);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Integer i = (Integer) value;
b.setValue(i);
return b;
}
JProgressBarのsetPreferredSizeメソッドを呼び出しましたが、機能しません。JTableのsetIntercellSpacingメソッドも呼び出しましたが、JTableの行で選択された背景がスペースに表示されない場合は、必要ありません。誰か助けてもらえますか?