JList问题求教! 不能用JTABLE,要求必须用JList,是客户要求的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我说过了客户不让我们用JTable http://www2.gol.com/users/tame/swing/examples/SwingExamples.html JList只能一列显示,不像VC的ListView,你们的客户只做win下的程序吧这个时候你不得不用JTableJTable可以做到同样的效果而且是一个很明显要用Table实现的需求你们的客户还会指导你们做项目吗?管得太小了吧简值是太霸道了。别让他在一旁指手划脚,一脚把他 其实实在不能用JTable的话,也可以实现,不过工作量就另,JList可以编辑吗??我比较孤陋寡闻的说 其实估计用户不想要那个表格线而已用个JTable,把界面做成和JList一样就是了,客户还看你代码啊,那让他自己写好了 谢谢大家帮忙!我也用JTable做了一个,但是明显就能看出来是JTable.因为当每一行被选中的时候,同一行的每个格之间有白线我怎么去掉他呀?我尝试了很多方法,都失败了.大家帮我看看,谢谢!package untitled122;/* (swing1.1.1beta2) *///package jp.gr.java_conf.tame.swing.examples;import java.awt.*;import java.awt.event.*;import java.awt.image.*;import javax.swing.*;import javax.swing.table.*;import com.borland.jbcl.layout.*;/** * @version 1.0 06/19/99 */public class ControlList extends JFrame { JTable table; protected ListSelectionModel selectionModel; public ControlList() { super("AnimatedIconTable Example"); try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } public void CallControlList(Object[][] object) { ControlModel model = new ControlModel(); model.setObjectData(object); table = new JTable(model); table.setRowHeight(20); table.getColumnModel().getColumn(0).setPreferredWidth(1); table.getColumnModel().getColumn(1).setPreferredWidth(96); table.getColumnModel().getColumn(2).setPreferredWidth(1);// table.setCellSelectionEnabled(false); table.setTableHeader(null); table.setShowGrid(false); table.setFocusable(false); JScrollPane pane = new JScrollPane(table); getContentPane().add(pane); table.addMouseListener(mouselistener); //table.setShowVerticalLines(true); } MouseListener mouselistener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 1) { Point origin = e.getPoint(); int m_irow = table.rowAtPoint(origin); System.out.println("*****" + m_irow); table.setSelectionBackground(Color.pink); table.setColumnSelectionAllowed(false); table.setFocusable(false); table.setEditingColumn(0); table.setEditingRow(0);// table.setShowHorizontalLines(true);// table.setShowVerticalLines(true); table.setVerifyInputWhenFocusTarget(true); } } }; public static void main(String[] args) { Object[][] object; object = new Object[13][13]; for (int i = 0; i < 13; i++) { Icon ww = new ImageIcon("c:\\img\\1.jpg"); object[i][0] = ww; object[i][1] = "sad"; object[i][2] = new ImageIcon("c:\\img\\w1.jpg"); } ControlList frame = new ControlList(); frame.CallControlList(object); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.setSize(300, 150); frame.setVisible(true); } class ControlModel extends AbstractTableModel { final String[] columnNames = { "", "", ""}; public Object[][] cellData; public void setObjectData(Object[][] object) { cellData = object; } public int getColumnCount() { return columnNames.length; } public int getRowCount() { return cellData.length; } public String getColumnName(int col) { return (String) columnNames[col]; } public Object getValueAt(int row, int col) { return cellData[row][col]; } public Class getColumnClass(int col) { return getValueAt(0, col).getClass(); } }; private void jbInit() throws Exception { }} JTable.getColumnModel().setColumnMargin(0); JTable.setRowMargin(0); JTable.setShowGrid(false); 另,如果连选中时的Border(就是那个黑框)也不想要的话,就自己实现一个TableCellRenderer,在public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)里把setBorder()去掉。 OK,relive(六道轮回,无想转生) ,谢谢,问题解决!结贴!! 使用paint的一点小问题 用反射如何获得泛型的类型 每日一题10 求最佳算法:把字符串"aa2bbc22csdfas22dfj2kk22jfsd"中所有的"22"替换成"33" 求获javaservlet电子书 如何删除数组中某一元素,是java里,不是javascript里 如何将一个位图加载到一个组件上阿,比如说JLabel,送分,送分! javase 数据库安全问题 到底哪的问题,怎么就是不完全正确???哪位大神给看下 java 请问如何移除已经建立的账号?(已附部分代码) 这个程序是个书上的判断题,为什么会编译错误啊 页面提交的问题
JTable可以做到同样的效果
而且是一个很明显要用Table实现的需求你们的客户还会指导你们做项目吗?
管得太小了吧简值是太霸道了。别让他在一旁指手划脚,一脚把他
用个JTable,把界面做成和JList一样就是了,客户还看你代码啊,那让他自己写好了
我也用JTable做了一个,但是明显就能看出来是JTable.因为当每一行被选中的时候,同一行的每个格之间有白线我怎么去掉他呀?我尝试了很多方法,都失败了.大家帮我看看,谢谢!
package untitled122;/* (swing1.1.1beta2) */
//package jp.gr.java_conf.tame.swing.examples;import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.table.*;
import com.borland.jbcl.layout.*;
/**
* @version 1.0 06/19/99
*/
public class ControlList extends JFrame {
JTable table;
protected ListSelectionModel selectionModel;
public ControlList() {
super("AnimatedIconTable Example");
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
} }
public void CallControlList(Object[][] object) {
ControlModel model = new ControlModel();
model.setObjectData(object);
table = new JTable(model);
table.setRowHeight(20);
table.getColumnModel().getColumn(0).setPreferredWidth(1);
table.getColumnModel().getColumn(1).setPreferredWidth(96);
table.getColumnModel().getColumn(2).setPreferredWidth(1);
// table.setCellSelectionEnabled(false); table.setTableHeader(null);
table.setShowGrid(false);
table.setFocusable(false);
JScrollPane pane = new JScrollPane(table);
getContentPane().add(pane);
table.addMouseListener(mouselistener); //table.setShowVerticalLines(true);
}
MouseListener mouselistener = new MouseAdapter() {
public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 1) {
Point origin = e.getPoint();
int m_irow = table.rowAtPoint(origin); System.out.println("*****" + m_irow);
table.setSelectionBackground(Color.pink);
table.setColumnSelectionAllowed(false);
table.setFocusable(false);
table.setEditingColumn(0);
table.setEditingRow(0);
// table.setShowHorizontalLines(true);
// table.setShowVerticalLines(true);
table.setVerifyInputWhenFocusTarget(true);
}
}
}; public static void main(String[] args) {
Object[][] object;
object = new Object[13][13];
for (int i = 0; i < 13; i++) {
Icon ww = new ImageIcon("c:\\img\\1.jpg");
object[i][0] = ww;
object[i][1] = "sad";
object[i][2] = new ImageIcon("c:\\img\\w1.jpg");
} ControlList frame = new ControlList();
frame.CallControlList(object);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(300, 150);
frame.setVisible(true);
} class ControlModel
extends AbstractTableModel {
final String[] columnNames = {
"", "", ""};
public Object[][] cellData;
public void setObjectData(Object[][] object) {
cellData = object;
} public int getColumnCount() {
return columnNames.length;
} public int getRowCount() {
return cellData.length;
} public String getColumnName(int col) {
return (String) columnNames[col];
} public Object getValueAt(int row, int col) {
return cellData[row][col];
} public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
};
private void jbInit() throws Exception { }}
JTable.setRowMargin(0);
JTable.setShowGrid(false);
里把setBorder()去掉。