Helo, я искал ответ во многих местах, но у меня нет решения, можете ли вы помочь мне в этом?JTable change Column Font
Я создаю таблицу, где хочу сделать первую колонку с более высоким размером шрифта.
Например, в столбце 0 Я хочу Размер шрифта 30 и на колонках 1-3 г хотите Размер шрифта 13.
Вот мой код
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.*;
public class kanji_list extends JFrame {
kanji_list(){
JTable table = new JTable();
JScrollPane scroll = new JScrollPane();
Image icon = Toolkit.getDefaultToolkit().getImage("JLPT.jpg");
ImageIcon ima = new ImageIcon("JLPT.jpg");
DefaultTableModel model = new DefaultTableModel(get_data(), get_header());
table = new JTable(model){
public boolean isCellEditable(int rowIndex, int vColIndex){
return false;
}
};
JTableHeader th = table.getTableHeader();
TableColumnModel tcm = th.getColumnModel();
TableColumn column = null;
table.setFont(new Font("Microsoft JhengHei", Font.BOLD, 13));
for (int i = 0; i < 4; i++) {
column = table.getColumnModel().getColumn(i);
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
tcr.setHorizontalAlignment(SwingConstants.CENTER);
column.setCellRenderer(tcr);
if (i==0) {
column.setPreferredWidth(50);
}
else{
if(i==1){
column.setPreferredWidth(175);
}
else{
if(i==2){
column.setPreferredWidth(200);
}
else{
column.setPreferredWidth(875);
}
}
}
}
table.setRowHeight(table.getRowHeight()+30);
table.setModel(model);
scroll.add(table);
this.add(scroll);
this.setTitle("Katakana");
this.setSize(1350, 700);
this.setIconImage(icon);
this.setVisible(true);
this.setLocationRelativeTo(null);
scroll.setViewportView(table);
}
Object [][]get_data(){
Object data[][] = new Object[][]{
{"\u4e00", "Uno, 1", "ICHI, ITSU", "hito-, hitotsu"},
{"\u4e8c", "Dos, 2", "NI, JI", "futa, futatsu, futatabi"},
{"\u4e09", "Tres, 3", "SAN, JOU", "mi, mitsu, mittsu"},
{"\u99c5", "Estación", "EKI", ""}
};
return data;
}
String []get_header(){
String header [] = new String[]{"KANJI", "SIGNIFICADO", "LECTURA ON", "LECTURA KUN"};
return header;
}
}
Это Японская система обучения и Kanjis на unicode в 1-м столбце вообще не видны с моим шрифтом 13-го размера, но если я сделаю всю таблицу более высокого размера, все остальные столбцы станут больше, и это выглядит не очень хорошо.
Думаю, я объяснил свою проблему.
Я пробовал это с множеством разных идей, но я не получаю никакого результата.
Прошу, пожалуйста, что не так (за исключением Nimbus) с 'table.getTableHeader(). SetFont (new Font (null, Font.PLAIN, 23));' – mKorbel
@mKorbel ничего плохого :-) Только это не связано с вопросом как Я это понимаю: речь идет о шрифте за столбец, который отличается от шрифта таблицы. – kleopatra
:-) мой specum, вероятно, так почему, почему я должен читать ... – mKorbel