import java.awt.*;import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.event.*;
import javax.swing.text.*;
/**
import com.elevenworks.swing.border.BrushedMetalBevelBorder;
import com.elevenworks.swing.panel.BrushedMetalPanel;
import com.elevenworks.swing.panel.BrushedMetalScrollPaneUI;
import com.elevenworks.swing.panel.BrushedMetalSplitPaneUI;
import com.xe.relativelayout.swing.SwingRelativeLayout;
**/public class Test1 extends JPanel {
private JFrame frame;
private JTextField input;
    private JTextField inputTextField;
    private JTextArea outputTextArea;
    private JButton   button1;
    private JButton   button2;
    private JButton   button3;
    private JLabel   label;
    private JList list;
    private JSplitPane split;
private JPanel left;
private JPanel right;
    
    public Test1() {
    
     try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception exc)
{
// Do nothing...
}

        this.setLayout(new BorderLayout());
        initialize();
    }
    
    public void initialize()
    {
     frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
        // ------------------------------
        inputTextField = new JTextField("            " +
         "                                          " +
         "                                                      ");
        input = new JTextField();
        inputTextField.setBounds(50, 30, 100, 10);
        inputTextField.setName("sssssssssssssssssss");
        JPanel northPanel = new JPanel();
        northPanel.setBackground(Color.gray);
        button1 = new JButton("start");
        button2 = new JButton("pause");
        button3 = new JButton(" kill  ");
        label = new JLabel("input:");
        northPanel.setLayout(new FlowLayout()); 
        
        northPanel.add(button1);
        northPanel.add(button2);
        northPanel.add(button3);
        northPanel.add(label);
        northPanel.add(inputTextField);
        
        JPanel centerPanel = new JPanel();
        split = new JSplitPane();
Border border = BorderFactory.createBevelBorder(BevelBorder.LOWERED);
split.setBorder(border);
left = new JPanel();
left.setOpaque(false);
createList();
left.setLayout(new BorderLayout());
left.add(list, BorderLayout.CENTER); JScrollPane leftScroll = new JScrollPane(list, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
split.setLeftComponent(leftScroll);
split.setRightComponent(null);
        
        frame.getContentPane().add(northPanel, BorderLayout.NORTH);
        frame.getContentPane().add(split, BorderLayout.CENTER);
        frame.setVisible(true);
    }    private void createList()
{
list = new JList(); DefaultListModel vModel = new DefaultListModel(); vModel.addElement("processing: http://www.shef.ac.uk");
for(int i=0; i<10; i++)
{
vModel.addElement(i);
} list.setModel(vModel);
}    private static void createAndShowGUI() {
        JFrame frame = new JFrame("Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(350, 400);
        
        JPanel test = new Test1();
        frame.getContentPane().add(test);
        
        frame.setVisible(true);
    }    public static void main(String[] args) {
    
       new Test1();
}}有时间的话,请先运行看看,希望能得到一些改进,让GUI看起来更漂亮,比如border,北京颜色,button设计方面。
谢谢了。

解决方案 »

  1.   

    我没有MyEclipse,而且有美工比较好的,改一下还是不一样的吧。
      

  2.   

    20分。。
    如果是200分可以考虑去改下,美工是很费力气的,特别是在SWING中。BORDER这些你可以自己添加,背景一般就用setIcon()方法来做。但是如果是改外观,就需要用到SynthLookAndFeel,这可就太麻烦了。
      

  3.   

    想让swing程序更美观的话,可以看看http://www.easynth.com
    有个开源的easynth外观,还有一个开发外观的IDE,不过那个是收费的。
      

  4.   

    北面的Panel背景设成白颜色就好了
      

  5.   

    要漂亮,就自定义组件,我这次的项目中用到的GUI组件全部自定义
      

  6.   

    去下个免费的外观感觉吧,比如substance什么的
      

  7.   

    package tt;import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;import javax.swing.BorderFactory;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.UIManager;
    import javax.swing.border.BevelBorder;
    import javax.swing.border.Border;
    import javax.swing.border.EmptyBorder;/**
     * import com.elevenworks.swing.border.BrushedMetalBevelBorder; import
     * com.elevenworks.swing.panel.BrushedMetalPanel; import
     * com.elevenworks.swing.panel.BrushedMetalScrollPaneUI; import
     * com.elevenworks.swing.panel.BrushedMetalSplitPaneUI; import
     * com.xe.relativelayout.swing.SwingRelativeLayout;
     */public class Test1 extends JPanel {
        private JFrame frame;    private JTextField input;    private JTextField inputTextField;    private JTextArea outputTextArea;    private JButton button1;    private JButton button2;    private JButton button3;    private JLabel label;    private JList list;    private JSplitPane split;    private JPanel left;    private JPanel right;    public Test1() {        try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception exc) {
                // Do nothing...
            }        this.setLayout(new BorderLayout());
            initialize();
        }    public void initialize() {
            frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(600, 400);
            // ------------------------------
            inputTextField = new JTextField();
            input = new JTextField();
            inputTextField.setBounds(50, 30, 100, 10);
            inputTextField.setName("sssssssssssssssssss");
            JPanel northPanel = new JPanel();
            northPanel.setBackground(Color.gray);
            button1 = new JButton("start");
            button2 = new JButton("pause");
            button3 = new JButton(" kill  ");
            label = new JLabel("input:");
            northPanel.setLayout(new BorderLayout());        JPanel panel1 = new JPanel();
            panel1.setLayout(new GridLayout(1, 3));
            panel1.add(button1);
            panel1.add(button2);
            panel1.add(button3);
            panel1.setBorder(new EmptyBorder(2, 2, 2, 5));
            northPanel.add(panel1, BorderLayout.WEST);        JPanel panel2 = new JPanel();
            panel2.setLayout(new BorderLayout());
            panel2.add(label, BorderLayout.WEST);
            panel2.add(inputTextField, BorderLayout.CENTER);
            panel2.setBorder(new EmptyBorder(2, 5, 2, 8));
            northPanel.add(panel2, BorderLayout.CENTER);        JPanel centerPanel = new JPanel();
            split = new JSplitPane();
            Border border = BorderFactory.createBevelBorder(BevelBorder.LOWERED);
            split.setBorder(border);
            left = new JPanel();
            left.setOpaque(false);
            createList();
            left.setLayout(new BorderLayout());
            left.add(list, BorderLayout.CENTER);        JScrollPane leftScroll =
                    new JScrollPane(
                        list,
                        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            split.setLeftComponent(leftScroll);
            split.setRightComponent(null);        frame.getContentPane().add(northPanel, BorderLayout.NORTH);
            frame.getContentPane().add(split, BorderLayout.CENTER);
            frame.setVisible(true);
        }    private void createList() {
            list = new JList();        DefaultListModel vModel = new DefaultListModel();        vModel.addElement("processing: http://www.shef.ac.uk");
            for (int i = 0; i < 10; i++) {
                vModel.addElement(i);
            }        list.setModel(vModel);
        }    private static void createAndShowGUI() {
            JFrame frame = new JFrame("Demo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(350, 400);        JPanel test = new Test1();
            frame.getContentPane().add(test);        frame.setVisible(true);
        }    public static void main(String[] args) {        new Test1();
        }}
    如果想控制画面缩小时,谁显示谁不显示,那就自己写布局管理器