下面是我的源代码请大家看看能否改变列名的字体还有能否让每列不能拖动
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.util.Vector;class t_able extends JFrame
{
JTable table;
Container con = new Container();
DefaultTableModel defaultmodel;
Vector ve_ColumnName = new Vector();
Vector ve_RowTemp = new Vector();
Vector ve_RowValue = new Vector();
BorderLayout border = new BorderLayout();
JPanel p = new JPanel();
Font font = new Font("宋体",Font.PLAIN,16);
public t_able()
{
super("This is a JTable Demo");
this.setBounds(200,200,300,300);
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}
catch (Exception exc)
{}
con = this.getContentPane();
con.add(p,border.CENTER);
p.setLayout(border);
for(int i=0;i<5;i++)
{
ve_ColumnName.add(String.valueOf(i));
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
ve_RowTemp.add("这是一个Demo");
}
ve_RowValue.add(ve_RowTemp.clone());
ve_RowTemp.clear();
}
defaultmodel = new DefaultTableModel(ve_RowValue,ve_ColumnName);
table = new JTable(defaultmodel);
p.add(new JScrollPane(table),border.CENTER);
}
public static void main(String args[])
{
t_able a1 = new t_able();
a1.show();
}
}
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.util.Vector;class t_able extends JFrame
{
JTable table;
Container con = new Container();
DefaultTableModel defaultmodel;
Vector ve_ColumnName = new Vector();
Vector ve_RowTemp = new Vector();
Vector ve_RowValue = new Vector();
BorderLayout border = new BorderLayout();
JPanel p = new JPanel();
Font font = new Font("宋体",Font.PLAIN,16);
public t_able()
{
super("This is a JTable Demo");
this.setBounds(200,200,300,300);
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}
catch (Exception exc)
{}
con = this.getContentPane();
con.add(p,border.CENTER);
p.setLayout(border);
for(int i=0;i<5;i++)
{
ve_ColumnName.add(String.valueOf(i));
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
ve_RowTemp.add("这是一个Demo");
}
ve_RowValue.add(ve_RowTemp.clone());
ve_RowTemp.clear();
}
defaultmodel = new DefaultTableModel(ve_RowValue,ve_ColumnName);
table = new JTable(defaultmodel);
p.add(new JScrollPane(table),border.CENTER);
}
public static void main(String args[])
{
t_able a1 = new t_able();
a1.show();
}
}
import javax.swing.table.*;
import java.awt.*;
import java.util.Vector;public class T_able extends JFrame
{ JTable table;
Container con = new Container();
DefaultTableModel defaultmodel;
Vector ve_ColumnName = new Vector();
Vector ve_RowTemp = new Vector();
Vector ve_RowValue = new Vector();
BorderLayout border = new BorderLayout();
JPanel p = new JPanel();
Font font = new Font("宋体",Font.PLAIN,16);
public T_able()
{
super("This is a JTable Demo");
this.setBounds(200,200,300,300);
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.updateComponentTreeUI(this);
}
catch (Exception exc)
{}
con = this.getContentPane();
con.add(p,border.CENTER);
p.setLayout(border);
for(int i=0;i<5;i++)
{
ve_ColumnName.add(String.valueOf(i));
}
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
ve_RowTemp.add("这是一个Demo");
}
ve_RowValue.add(ve_RowTemp.clone());
ve_RowTemp.clear();
}
defaultmodel = new DefaultTableModel(ve_RowValue,ve_ColumnName);
table = new JTable(defaultmodel);
///////////////////////////////////////////////////////////
DefaultTableCellRenderer myCellRenderer = new
DefaultTableCellRenderer()
{
public Component getTableCellRendererComponent(JTable table,
Object object,
boolean isSelected, boolean hasFocus, int row, int column)
{
JLabel c=(JLabel)super.getTableCellRendererComponent(table,object,isSelected,hasFocus,row,column);
c.setFont(font);
c.setOpaque(false);
//设置一个合适的border
c.setBorder(BorderFactory.createRaisedBevelBorder());
c.setHorizontalAlignment(SwingConstants.CENTER);
return c;
}
};
TableColumnModel tcm = table.getColumnModel();
tcm.getColumn(0).setHeaderRenderer(myCellRenderer);
//固定列宽
tcm.getColumn(0).setMaxWidth(120);
tcm.getColumn(0).setMinWidth(120);
////////////////////////////////////////////////////////////////
p.add(new JScrollPane(table),border.CENTER);
this.setVisible(true);
} public static void main(String args[])
{
T_able a1 = new T_able();
// a1.show();
}
}
Column 1 Column 2 Column 3
现在能自由拖动变成
Column 2 Column 3 Column 1
能不能不让浏览的用户拖动