
然后用JTable的getColumn(Object)获取列,再用setCellRenderer(TableCellRenderer cellRenderer)方法就可以添加进表格了。
附相关API:
javax.swing.JTable
public TableColumngetColumn(Object identifier)返回表中列的 TableColumn 对象,当使用 equals 进行比较时,表的标识符等于
identifier。
参数:identifier - 标识符对象
返回:与标识符相匹配的 TableColumn 对象
javax.swing.table.TableCellRenderer
public interface TableCellRenderer
此接口定义了要成为 JTable 中单元格渲染器的任意对象所需的方法。
getTableCellRendererComponentComponentgetTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)返回用于绘制单元格的组件。此方法用于在绘制前适当地配置渲染器。
TableCellRenderer 还负责呈现表示该表当前 DnD 放置位置的单元格(如果有)。如果此呈现器负责呈现 DnD 放置位置,则它应该直接查询表以确定给定的行和列是否表示放置位置:
JTable.DropLocation dropLocation = table.getDropLocation()
if (dropLocation != null
&&!dropLocation.isInsertRow()
&&!dropLocation.isInsertColumn()
&&dropLocation.getRow() == row
&&dropLocation.getColumn() == column) {
// this cell represents the current drop location
// so render it specially, perhaps with a different color
}
在打印 *** 作期间,将调用此方法(isSelected 和 hasFocus 为
false)阻止选择和焦点在打印输出中出现。要根据是否打印表进行其他定制,检查 JComponent.isPaintingForPrint()
的返回值。
参数:table - 要求渲染器绘制的 JTable;可以为 nullvalue - 要呈现的单元格的值。由具体的渲染器解释和绘制该值。例如,如果 value 是字符串
"true",则它可呈现为字符串,或者也可呈现为已选中的复选框。null 是有效值
isSelected - 如果使用选中样式的高亮显示来呈现该单元格,则为 true;否则为 false
hasFocus - 如果为
true,则适当地呈现单元格。例如,在单元格上放入特殊的边框,如果可以编辑该单元格,则以彩色呈现它,用于指示正在进行编辑
row - 要绘制的单元格的行索引。绘制头时,row 值是 -1
column - 要绘制的单元格的列索引
javax.swing.table.TableColumn
public void setCellRenderer(TableCellRenderer cellRenderer)设置 JTable 用于绘制此列各值的 TableCellRenderer。
参数:cellRenderer - 新的 cellRenderer
给你个简单例子,懒得写通过窗体改了。你自己看看把两条线中间的代码拿到窗体里去改改就行了,也可以变长。
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.DefaultComboBoxModel
import javax.swing.JButton
import javax.swing.JComboBox
import javax.swing.JFrame
public class LabelTest extends JFrame{
private JComboBox box
public LabelTest() {
init()
}
private void init() {
String [] arr = {"1", "2", "3", "4" }
setLayout(null)
box = new JComboBox(arr)
box.setBounds(10, 20, 100, 25)
JButton btn = new JButton("改变")
btn.setBounds(115, 20, 60, 25)
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//-----------------------------
DefaultComboBoxModel model = (DefaultComboBoxModel) box.getModel()
model.removeElementAt(2)
model.insertElementAt("sdd", 2)
//-----------------------------
}
})
add(box)
add(btn)
setSize(200, 100)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
public static void main(String[] args) {
new LabelTest().setVisible(true)
}
}
lz 你好
(ps: lz 加点儿分吧 太少了……)
具体代码如下:
import java.awt.*import java.awt.event.*
import javax.swing.*
import java.io.*
public class Test extends JFrame {
private JLabel name,phone,sex
private JTextField inputName,inputPhone
private JComboBox sexBox
private String[] item = {"男", "女"}
private JButton save
public Test() {
super("信息管理")
setSize(240,300)
setLayout(new FlowLayout(FlowLayout.CENTER, 10, 30))
name = new JLabel("姓名:")
phone = new JLabel("手机号:")
sex = new JLabel("性别:")
inputName = new JTextField(14)
inputPhone = new JTextField(14)
sexBox = new JComboBox(item)
save = new JButton("储存")
save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(inputName.getText().equals("") || inputPhone.getText().equals("")) {
return
}
try {
File f = new File("info.txt")
BufferedWriter bw = new BufferedWriter(new FileWriter(f, true))
if(f.length() == 0){
bw.write("姓名\t性别\t手机号")
bw.newLine()
}
String str = inputName.getText()+"\t"+sexBox.getSelectedItem()+"\t"+inputPhone.getText()
bw.write(str)
bw.newLine()
bw.close()
} catch (Exception ex) {
}
}
})
getContentPane().setBackground(Color.WHITE)
getContentPane().add(Box.createHorizontalStrut(5))
getContentPane().add(name)
getContentPane().add(inputName)
getContentPane().add(phone)
getContentPane().add(inputPhone)
getContentPane().add(Box.createHorizontalStrut(35))
getContentPane().add(sex)
getContentPane().add(sexBox)
getContentPane().add(Box.createHorizontalStrut(35))
getContentPane().add(save)
setLocationRelativeTo(null)
setVisible(true)
setDefaultCloseOperation(3)
}
public static void main (String[] args) {
new Test()
}
}
希望能帮助你哈
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)