Substance开源产品--做出不同的SWING界面

这篇博客展示了如何利用Substance开源库为Java Swing应用创建一个与众不同的界面。通过导入和设置SubstanceBusinessBlueSteelLookAndFeel,实现了界面风格的改变。文章包含了一个简单的Swing应用示例,包括菜单栏、表格和文本区域,并提供了下载Substance.jar的链接。

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

 import java.awt.BorderLayout;  
import java.awt.Dimension;  
import java.awt.Toolkit;  
 
import javax.swing.JButton;  
import javax.swing.JFrame;  
import javax.swing.JMenu;  
import javax.swing.JMenuBar;  
import javax.swing.JMenuItem;  
import javax.swing.JPanel;  
import javax.swing.JPopupMenu;  
import javax.swing.JScrollPane;  
import javax.swing.JTable;  
import javax.swing.JTextArea;  
import javax.swing.SwingUtilities;  
import javax.swing.UIManager;  
import javax.swing.table.DefaultTableModel;  
 
import org.jvnet.substance.skin.SubstanceBusinessBlueSteelLookAndFeel;  
 
public class test6 extends JFrame {  
 
    private JMenuBar mainBar = new JMenuBar();  
    private JMenu sysMenu = new JMenu("系統");  
    private JMenuItem exitItem = new JMenuItem("退出");  
    private JMenuItem loginItem = new JMenuItem("登錄");  
    private JMenu aboutMenu = new JMenu("關于");  
    private JMenuItem helpItem = new JMenuItem("幫助");  
      
    private JPopupMenu popup = new JPopupMenu();  
    private JMenuItem sendItem = new JMenuItem("發信息");  
    private JMenuItem infoItem = new JMenuItem("看賬戶");  
    private JMenuItem logoutItem = new JMenuItem("注銷");  
 
    private JTable table;  
    private JScrollPane jspLogin;  
    private JScrollPane jsplogTA;  
    private JPanel displayPanel;  
    private JPanel btnPanel;  
    private JButton dispalyBtn;  
    private JButton preBtn;  
    private JButton nextBtn;  
 
    public static DefaultTableModel defaultModel;  
    public static JTextArea logTA;    
      
    public test6() {  
        super("皮膚測試");  
        setMainBar();  
        setPanel();  
        initFrame(600, 450);  
    }  
      
    private void initFrame(int frameWidth, int frameHeight) {  
        setTitle("皮膚測試");  
        Toolkit tk = Toolkit.getDefaultToolkit();  
        Dimension screenDimension = tk.getScreenSize();  
        int screenWidth = screenDimension.width;  
        int screenHeight = screenDimension.height;  
        setLocation((screenWidth - frameWidth) / 2,  
                (screenHeight - frameHeight) / 2);  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setSize(frameWidth, frameHeight);  
        setVisible(true);  
    }     
 
    private void setMainBar() {  
 
        setJMenuBar(mainBar);  
        mainBar.add(sysMenu);  
        mainBar.add(aboutMenu);  
        sysMenu.add(loginItem);  
        sysMenu.addSeparator();  
        sysMenu.add(exitItem);  
        aboutMenu.add(helpItem);  
        popup.add(sendItem);  
        popup.add(infoItem);  
        popup.add(logoutItem);  
    }  
 
    private void setPanel() {  
        String[][] playerInfo = new String[0][0];  
        String[] names = { "用戶", "登錄時間", "當前狀態" };  
        defaultModel = new DefaultTableModel(playerInfo, names);  
        logTA = new JTextArea();  
        logTA.setLineWrap(true);  
        jsplogTA = new JScrollPane(logTA);  
        table = new JTable(defaultModel);  
        jspLogin = new JScrollPane(table);  
        displayPanel = new JPanel();  
        btnPanel = new JPanel();  
 
        displayPanel.setLayout(new BorderLayout());  
        displayPanel.add(jsplogTA, BorderLayout.CENTER);  
        displayPanel.add(btnPanel, BorderLayout.SOUTH);  
 
        dispalyBtn = new JButton("顯示10條");  
        preBtn = new JButton("向前10條");  
        nextBtn = new JButton("向后10條");  
        btnPanel.add(dispalyBtn);  
        btnPanel.add(preBtn);  
        btnPanel.add(nextBtn);  
        jspLogin.setPreferredSize(new Dimension(600, 69));  
        add(jspLogin, BorderLayout.NORTH);  
        add(displayPanel, BorderLayout.CENTER);  
    }     
      
      
    public static void main(String[] args) {  
        JFrame.setDefaultLookAndFeelDecorated(true);  
        try {  
            UIManager.setLookAndFeel(new SubstanceBusinessBlueSteelLookAndFeel());  
        } catch (Exception e) {  
            System.out.println("Substance Raven Graphite failed to initialize");  
        }  
        SwingUtilities.invokeLater(new Runnable() {  
            public void run() {  
                test6 w = new test6();  
                w.setVisible(true);  
            }  
        });  
    }  


最后給個下載Substance.jar的地址

http://d.download.youkuaiyun.com/down/2030000/guofangsky

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值