Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jtable外观:如何编写一个具有Jtable属性的代码,这些属性可以用于多个Jtable以获得相似的外观?_Java_Swing_User Interface_Properties_Jtable - Fatal编程技术网

Java Jtable外观:如何编写一个具有Jtable属性的代码,这些属性可以用于多个Jtable以获得相似的外观?

Java Jtable外观:如何编写一个具有Jtable属性的代码,这些属性可以用于多个Jtable以获得相似的外观?,java,swing,user-interface,properties,jtable,Java,Swing,User Interface,Properties,Jtable,我正在使用一个带有5个表的简单crud,我已经更改了表1的属性(背景色、前景色、行高等)。我想要的是我的表2、表3和其他表看起来像表1 我已尝试创建自定义TableCellRenderer 这是我的代码: package com.table.design.Default; 导入java.awt.Color; 导入java.awt.Component; 导入java.awt.Font; 导入java.util.Hashtable; 导入java.util.Map; 导入javax.swing.Bo

我正在使用一个带有5个表的简单crud,我已经更改了表1的属性(背景色、前景色、行高等)。我想要的是我的表2、表3和其他表看起来像表1

我已尝试创建自定义TableCellRenderer 这是我的代码:

package com.table.design.Default;
导入java.awt.Color;
导入java.awt.Component;
导入java.awt.Font;
导入java.util.Hashtable;
导入java.util.Map;
导入javax.swing.BorderFactory;
导入javax.swing.JScrollPane;
导入javax.swing.JTable;
导入javax.swing.SwingConstants;
导入javax.swing.table.DefaultTableCellRenderer;
导入javax.swing.table.TableCellRenderer;
公共类StrippedTable实现TableCellRenderer{
私有TableCellRenderer和RappedRenderer;
公共条带化表(TableCellRenderer pRappedRenderer){
mWrappedRenderer=pWrappedRenderer;
DefaultTableCellRenderer DEFAULT_RENDERER=新的DefaultTableCellRenderer();
}
公共组件GetTableCellRenderComponent(JTable pTable、Object pValue、boolean、,
布尔值(焦点、int-pRow、int-pColumn){
组件c=MwrapedRenderer.GetTableCellRenderComponent(pTable、pValue、pIsSelected、pHasFocus、,
船头,P柱);
如果(pTable.isCellSelected(船头,pColumn)=false){
c、 后坐地面(colorForRow(船头));
//c.setForeground(UIManager.getColor(“Table.foreground”);
}否则{
//c.setBackground(新java.awt.Color(242、242、242));
//c.setForeground(UIManager.getColor(“Table.selectionForeground”);
}
//设置全局表属性
pTable.设置行高(45);
pTable.setShowVerticalline(假);
返回c;
}
保护色colorForRow(int行){
返回(第%2行==0)?新建java.awt.Color(245245245245245):Color.WHITE;
}
}
可以添加代码吗

//设置全局表属性
pTable.设置行高(45);
pTable.setShowVerticalline(假);

公共组件getTableCellRenderComponent(JTable pTable、Object pValue、boolean、,
布尔值(焦点、int-pRow、int-pColumn){
组件c=MwrapedRenderer.GetTableCellRenderComponent(pTable、pValue、pIsSelected、pHasFocus、,
船头,P柱);
如果(pTable.isCellSelected(船头,pColumn)=false){
c、 后坐地面(colorForRow(船头));
//c.setForeground(UIManager.getColor(“Table.foreground”);
}否则{
//c.setBackground(新java.awt.Color(242、242、242));
//c.setForeground(UIManager.getColor(“Table.selectionForeground”);
}
//设置全局表属性
pTable.设置行高(45);
pTable.setShowVerticalline(假);
返回c;
}
因为它正在工作。。我使用这段代码使我的表具有相同的属性

TableModel s=(DefaultTableModel)jTable1.getModel();
StrippedTable cellRenderer=新的StrippedTable(jTable1.getDefaultRenderer(Object.class));
jTable1.setDefaultRenderer(Object.class,cellRenderer);
非常感谢

-------编辑------

我参加了另一个扩展jtable的课程


包com.table.design;
导入java.awt.Color;
导入java.awt.Component;
导入java.awt.Dimension;
导入java.awt.Font;
导入java.awt.event.MouseEvent;
导入javax.swing.BorderFactory;
导入javax.swing.JLabel;
导入javax.swing.JScrollPane;
导入javax.swing.JTable;
导入javax.swing.event.MouseInputAdapter;
导入javax.swing.table.TableCellRenderer;
导入javax.swing.table.TableModel;
公共类CustomTable扩展了JTable{
公共CustomTable(TableModel模型,JScrollPane滚动窗格){
超级(模型);
getTableHeader().setDefaultRenderer(新的customHeaderRenderer());
customTableProperties(滚动窗格);
}
@凌驾
公共组件预渲染器(TableCellRenderer渲染器,int行,int列){
组件c=super.prepareRenderer(呈现器、行、列);
如果(isCellSelected(行、列)=false){
c、 退根地(颜色为row(row));
}
返回c;
}
保护色colorForRow(int行){
返回(第%2行==0)?新建java.awt.Color(245245245245245):Color.WHITE;
}
私有void customTableProperties(JScrollPane sp){
set前台(新java.awt.Color(100100100));
设置显示(假);
setFont(新字体(“开放式Sans”,Font.PLAIN,14));
setIntercellSpacing(新java.awt.Dimension(0,0));
setSelectionBackground(新java.awt.Color(242、242、242));
setGridColor(新java.awt.Color(240240240));
setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
设置行高(45);
setCursor(新java.awt.Cursor(java.awt.Cursor.HAND_Cursor));
setboorder(BorderFactory.createEmptyByOrder());
setRowSelectionAllowed(假);
设置聚焦(假);
setAutoCreateRowSorter(真);
/**
****JscrollPane*******
*/
sp.setboorder(BorderFactory.createEmptyBorder());
sp.getViewport().setBackground(Color.decode(#FFFFFF”);
sp.setOpaque(假);
}
/**
*JtableHeaderRenderer的代码
*
*/
公共类customHeaderRenderer扩展JLabel实现TableCellRenderer{
公共customHeaderRenderer(){
setAutoCreateRowSorter(真);
setAutoResizeMode(0);
setFont(新字体(“开放式Sans”,Font.BOLD,15));
set前台(新java.awt.Color(95,95,95));
设置不透明(假);
getTableHeader().setBackground(新java.awt.Color(
import javax.swing.*;

public class JCustomTable extends JTable {
    public JCustomTable(/* parameters of your desired JTable constructor */){
        super(/* parameters of your desired JTable constructor */);
        //setting desired global table properties
        setRowHeight(45);
        setShowVerticalLines(false);
    }
}
CustomTable(TableModel)