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设计方面。
谢谢了。
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设计方面。
谢谢了。
如果是200分可以考虑去改下,美工是很费力气的,特别是在SWING中。BORDER这些你可以自己添加,背景一般就用setIcon()方法来做。但是如果是改外观,就需要用到SynthLookAndFeel,这可就太麻烦了。
有个开源的easynth外观,还有一个开发外观的IDE,不过那个是收费的。
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();
}}
如果想控制画面缩小时,谁显示谁不显示,那就自己写布局管理器