A
Anneta
Здравствуйте!
хочу в таблице все столбцы сделать фиксированной ширины (каждому столбцу установить свою ширину)
вот это все
я перепробова ничего не помогло=(
подскажите в чем может быть причина?
хочу в таблице все столбцы сделать фиксированной ширины (каждому столбцу установить свою ширину)
Код:
public Form() {
initComponents();
setDefaultCloseOperation(EXIT_ON_CLOSE);
...
//создаем модель данных и заполнем ее данными из DataRevie.dataRevie
TableModel model = new TableNewRevieModel(DataRevie.dataRevie);
//подключаем модель данных к таблице
jTable1.setModel(model);
Component c = new MyEditor().getTableCellEditorComponent(jTable1,
null, true, 0, 0);
jTable1.setRowHeight(c.getPreferredSize().height);
jTable1.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
if (jTable1.getSelectedColumn() != 7 ){
jTextPane1.setText(jTable1.getValueAt(jTable1.getSelectedRow(), 3).toString());
bTake.setVisible(true);
bSpam.setVisible(true);
}
}
@Override
public void mousePressed(MouseEvent e){
if (jTable1.getSelectedColumn() == 7){
try{
String url = jTable1.getValueAt(jTable1.getSelectedRow(), jTable1.getSelectedColumn()).toString();
Desktop.getDesktop().browse(new URI(url));
}catch(IOException e1){
e1.printStackTrace();
}catch(URISyntaxException e1){
e1.printStackTrace();
}
}
}
});
jTable1.setDefaultRenderer ( Object.class, new DefaultTableCellRenderer()
{
private JLabel l = new JLabel ();
public Component getTableCellRendererComponent ( JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column )
{
if(column == 7) {
//Чтобы JLabel выглядел как полноценная гиперссылка
l.setText("<html><a href=yandex.ru>"+value.toString()+"</a></html>");
//Чтобы JLabel выглядел как полноценная гиперссылка при наведении курсора мыши
l.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
return l;
}else{
l.setText(value.toString());
return l;
}
}
} );
TableRowSorter<TableModel> sorter = new TableRowSorter(model) {
@Override
public Comparator<?> getComparator(int column) {
// для нулевой строки+
if (column == 0) {
return new Comparator<String>() {
@Override
public int compare(String s1,String s2) {
return Integer.parseInt(s1) - Integer.parseInt(s2);
}
};
}
// для всех остальных
return super.getComparator(column);
}
};
jTable1.setRowSorter(sorter);
// jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
//jTable1.getColumnModel().getColumn(0).setMaxWidth(3);
//jTable1.getColumnModel().getColumn(0).setResizable(false);
// jTable1.getColumnModel().getColumn(1).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(1).setMaxWidth(20);
// jTable1.getColumnModel().getColumn(1).setResizable(false);
....
}
вот это все
Код:
// jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
jTable1.getColumnModel().getColumn(0).setMaxWidth(10);
jTable1.getColumnModel().getColumn(0).setResizable(false);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(20);
jTable1.getColumnModel().getColumn(1).setMaxWidth(20);
jTable1.getColumnModel().getColumn(1).setResizable(false);
подскажите в чем может быть причина?