import java.awt.BorderLayout; import java.awt.Component; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event. * ; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class Crawler extends JFrame { public static final int BOARD_WIDTH = 540 ; public static final int BOARD_HEIGHT = 570 ; public static final int X_LOCATION = 100 ; public static final int Y_LOCATION = 50 ; // 把节目分为上中三个Panel JPanel northPanel = new JPanel(); JPanel centerPanel = new JPanel(); JPanel southPanel = new JPanel(); // 输入 JTextField txtField = new JTextField( 30 ); JLabel labelURL = new JLabel( " Starting URL: " , JLabel.RIGHT); // 输出 JTextArea txtArea = new JTextArea( 10 , 40 ); JLabel labelTxt = new JLabel( " Result " ); // 按钮 JButton startButton = new JButton( " start " ); JButton cancelButton = new JButton( " cancel " ); public void launchFrame() throws Exception{ // 界面初始化 this .setLocation(X_LOCATION, Y_LOCATION); this .setSize(BOARD_WIDTH, BOARD_HEIGHT); this .setResizable( false ); this .setVisible( true ); this .setLayout( new GridLayout( 3 , 1 )); // 总体为三行一列布局 this .add(northPanel); this .add(centerPanel); this .add(southPanel); northPanel.add(labelURL); northPanel.add(txtField); centerPanel.setLayout( new FlowLayout()); centerPanel.add(labelTxt); centerPanel.add(txtArea); southPanel.setLayout( new FlowLayout()); southPanel.add(startButton); southPanel.add(cancelButton); startButton.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String url = txtField.getText(); txtArea.append(url + " \n " ); } }); cancelButton.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ txtArea.setText( "" ); } }); this .addWindowListener( new WindowAdapter(){ public void windowClosing (WindowEvent e){ System.exit( 0 ); } }); } public static void main(String[] args) throws Exception { new Crawler().launchFrame(); }}