Java---界面weblaf使用table

本文介绍了如何在Java应用中使用WebLaF库来增强界面设计,通过添加WebLaF库,可以为桌面应用程序提供现代且美观的用户界面。详细步骤包括引入WebLaF库并进行相关配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不多说,直接贴图

package com;

import java.awt.Component;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;

import com.alee.laf.panel.WebPanel;
import com.alee.laf.rootpane.WebFrame;
import com.alee.laf.scroll.WebScrollPane;
import com.alee.laf.table.WebTable;
import com.alee.laf.table.renderers.WebTableCellRenderer;
import com.alee.utils.swing.WebDefaultCellEditor;

public class mainui {
	private WebFrame wf;
	
	
	public void Init() {
		
		wf = new WebFrame();
		wf.setSize(400, 200);
		
		WebPanel jp=new WebPanel();
		
		 	WebTable table = new WebTable ( new ExampleTableModel () );
	        WebScrollPane scrollPane = new WebScrollPane ( table );

	        // Custom column
	        TableColumn column = table.getColumnModel ().getColumn ( 1 );

	        // Custom renderer
	        WebTableCellRenderer renderer = new WebTableCellRenderer ();
	        renderer.setToolTipText ( "Click for combo box" );
	        column.setCellRenderer ( renderer );

	        // Custom editor
	        JComboBox comboBox = new JComboBox ();
	        comboBox.addItem ( "Snowboarding" );
	        comboBox.addItem ( "Rowing" );
	        comboBox.addItem ( "Knitting" );
	        comboBox.addItem ( "Speed reading" );
	        comboBox.addItem ( "Pool" );
	        comboBox.addItem ( "None of the above" );
	        column.setCellEditor ( new WebDefaultCellEditor ( comboBox ) );

	        // Better column sizes
	        initColumnSizes ( table );
	        
	        jp.add(table);
		
		wf.add(jp);
		
		wf.setVisible(true);
	}
	
	private void initColumnSizes ( JTable table )
    {
        ExampleTableModel model = ( ExampleTableModel ) table.getModel ();
        TableColumn column;
        Component comp;
        int headerWidth;
        int cellWidth;
        Object[] longValues = model.longValues;
        TableCellRenderer headerRenderer = table.getTableHeader ().getDefaultRenderer ();

        for ( int i = 0; i < model.getColumnCount (); i++ )
        {
            column = table.getColumnModel ().getColumn ( i );

            comp = headerRenderer.getTableCellRendererComponent ( null, column.getHeaderValue (), false, false, 0, 0 );
            headerWidth = comp.getPreferredSize ().width;

            comp = table.getDefaultRenderer ( model.getColumnClass ( i ) ).
                    getTableCellRendererComponent ( table, longValues[ i ], false, false, 0, i );
            cellWidth = comp.getPreferredSize ().width;

            column.setPreferredWidth ( Math.max ( headerWidth, cellWidth ) );
        }
    }
	 public class ExampleTableModel extends AbstractTableModel
	    {
	        private String[] columnNames = { "Name", "Sport", "# of Years", "Vegetarian" };
	        private Object[][] data = { { "Kathy", "Snowboarding", 5, false }, { "John", "Rowing", 3, true }, { "Sue", "Knitting", 2, false },
	                { "Jane", "Speed reading", 20, true }, { "Joe", "Pool", 10, false } };

	        public final Object[] longValues = { "Jane", "None of the above", 20, Boolean.TRUE };

	        @Override
	        public int getColumnCount ()
	        {
	            return columnNames.length;
	        }

	        @Override
	        public int getRowCount ()
	        {
	            return data.length;
	        }

	        @Override
	        public String getColumnName ( int col )
	        {
	            return columnNames[ col ];
	        }

	        @Override
	        public Object getValueAt ( int row, int col )
	        {
	            return data[ row ][ col ];
	        }

	        @Override
	        public Class getColumnClass ( int c )
	        {
	            return longValues[ c ].getClass ();
	        }

	        @Override
	        public boolean isCellEditable ( int row, int col )
	        {
	            return col >= 1;
	        }

	        @Override
	        public void setValueAt ( Object value, int row, int col )
	        {
	            data[ row ][ col ] = value;
	            fireTableCellUpdated ( row, col );
	        }
	    }	

}

添加weblaf lib库



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值