В основном у меня есть JTable
, и этот JTabel
будет иметь продукт в одной ячейке, а затем в ячейке непосредственно ниже его стоимости.JTabel Индивидуальное выравнивание сотового текста
Название продукта должно быть выровнено влево. Стоимость продукта должна быть выровнена вправо.
На самом деле меня не волнует, что выравнивание других ячеек в каждой строке.
Поэтому мне нужно установить выравнивание отдельных ячеек или отдельных строк. Я нашел способы установить выравнивание таблицы и способы установки выравнивания столбцов, но никогда не строки/отдельные ячейки.
sscce:
public class Main extends JFrame{
public static void main(String args[]){
new Main();
}
public Main(){
super("Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setExtendedState(MAXIMIZED_BOTH);
setVisible(true);
setLayout(new BorderLayout());
TableModel dataModel = new AbstractTableModel() {
Object rows[] = new Object[50];
public int getColumnCount(){return 1;}
public int getRowCount(){return rows.length;}
public Object getValueAt(int row, int col){
return rows[row];
}
public boolean isCellEditable(int row, int col){
return false;
}
public void setValueAt(Object value, int row, int col) {
rows[row] = value;
fireTableCellUpdated(row,0);
}
};
JTable receipt = new JTable(dataModel);
receipt.setBorder(BorderFactory.createEtchedBorder());
receipt.setShowGrid(false);
add(receipt,BorderLayout.CENTER);
for(int i = 0; i < 10; i+=2){
receipt.setValueAt("ProductNameHere",i,0);
receipt.setValueAt("Cost",i+1,0);
}
validate();
repaint();
}
}
Установка пользовательских 'TableCellRenderer' и установить выравнивание на' JLabel' внутри него по мере необходимости для клетки. –
Основываясь на значении объекта, переданном в обработчик ячеек, измените выравнивание «DefaultTableCellRenderer» – MadProgrammer
+1 для [sscce] (http://sscce.org/). – trashgod