⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap29.code

📁 These files contain all of the code listings in Java: The Complete Reference, J2SE 5 Edition
💻 CODE
字号:
listing 1
import java.awt.*; 
import javax.swing.*; 
/* 
  <applet code="JLabelDemo" width=250 height=150> 
  </applet> 
*/ 
 
public class JLabelDemo extends JApplet { 
 
  public void init() { 
    // Create an icon. 
    ImageIcon ii = new ImageIcon("france.gif"); 
 
    // Create a label. 
    JLabel jl = new JLabel("France", ii, JLabel.CENTER); 
 
    // Add label to the content pane. 
    add(jl); 
  } 
}

listing 2
// A better approach to creating the GUI. 
import java.awt.*; 
import javax.swing.*; 
/* 
  <applet code="JLabelDemo" width=250 height=150> 
  </applet> 
*/ 
 
public class JLabelDemo extends JApplet { 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    // Create an icon. 
    ImageIcon ii = new ImageIcon("france.gif"); 
 
    // Create a label. 
    JLabel jl = new JLabel("France", ii, JLabel.CENTER); 
 
    // Add label to the content pane. 
    add(jl); 
  } 
}

listing 3
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
  <applet code="JTextFieldDemo" width=300 height=50> 
  </applet> 
*/ 
   
public class JTextFieldDemo extends JApplet implements ActionListener { 
  JTextField jtf; 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    // Set layout. 
    setLayout(new FlowLayout()); 
 
    // Add text field to content pane. 
    jtf = new JTextField(15); 
    add(jtf); 
    jtf.addActionListener(this); 
  } 
 
  // Show text when user presses ENTER. 
  public void actionPerformed(ActionEvent ae) { 
    showStatus(jtf.getText()); 
  } 
 
}

listing 4
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
  <applet code="JButtonDemo" width=250 height=450> 
  </applet> 
*/ 
   
public class JButtonDemo extends JApplet  
implements ActionListener { 
  JTextField jtf; 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
    setLayout(new FlowLayout()); 
 
    // Add buttons to content pane. 
    ImageIcon france = new ImageIcon("france.gif"); 
    JButton jb = new JButton(france); 
    jb.setActionCommand("France"); 
    jb.addActionListener(this); 
    add(jb); 
 
    ImageIcon germany = new ImageIcon("germany.gif"); 
    jb = new JButton(germany); 
    jb.setActionCommand("Germany"); 
    jb.addActionListener(this); 
    add(jb); 
 
    ImageIcon italy = new ImageIcon("italy.gif"); 
    jb = new JButton(italy); 
    jb.setActionCommand("Italy"); 
    jb.addActionListener(this); 
    add(jb); 
 
    ImageIcon japan = new ImageIcon("japan.gif"); 
    jb = new JButton(japan); 
    jb.setActionCommand("Japan"); 
    jb.addActionListener(this); 
    add(jb); 
 
    // Add text field to content pane. 
    jtf = new JTextField(15); 
    add(jtf); 
  } 
 
  public void actionPerformed(ActionEvent ae) { 
    jtf.setText(ae.getActionCommand()); 
  } 
}

listing 5
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
  <applet code="JCheckBoxDemo" width=400 height=50> 
  </applet> 
*/ 
   
public class JCheckBoxDemo extends JApplet  
implements ItemListener { 
  JTextField jtf; 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    setLayout(new FlowLayout()); 
 
    // Create icons. 
    ImageIcon normal = new ImageIcon("normal.gif"); 
    ImageIcon rollover = new ImageIcon("rollover.gif"); 
    ImageIcon selected = new ImageIcon("selected.gif"); 
 
    // Add check boxes to the content pane. 
    JCheckBox cb = new JCheckBox("C", normal); 
    cb.setRolloverIcon(rollover); 
    cb.setSelectedIcon(selected); 
    cb.addItemListener(this); 
    add(cb); 
 
    cb = new JCheckBox("C++", normal); 
    cb.setRolloverIcon(rollover); 
    cb.setSelectedIcon(selected); 
    cb.addItemListener(this); 
    add(cb); 
 
    cb = new JCheckBox("Java", normal); 
    cb.setRolloverIcon(rollover); 
    cb.setSelectedIcon(selected); 
    cb.addItemListener(this); 
    add(cb); 
 
    cb = new JCheckBox("Perl", normal); 
    cb.setRolloverIcon(rollover); 
    cb.setSelectedIcon(selected); 
    cb.addItemListener(this); 
    add(cb); 
 
    // Add text field to the content pane. 
    jtf = new JTextField(15); 
    add(jtf); 
  } 
 
  public void itemStateChanged(ItemEvent ie) { 
    JCheckBox cb = (JCheckBox)ie.getItem(); 
    int state = ie.getStateChange(); 
 
    if(state == ItemEvent.SELECTED) 
      jtf.setText(cb.getText() + " selected"); 
    else 
      jtf.setText(cb.getText() + " cleared"); 
  } 
}

listing 6
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
  <applet code="JRadioButtonDemo" width=300 height=50> 
  </applet> 
*/ 
   
public class JRadioButtonDemo extends JApplet  
implements ActionListener { 
  JTextField tf; 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    setLayout(new FlowLayout()); 
 
    // Add radio buttons to content pane. 
    JRadioButton b1 = new JRadioButton("A"); 
    b1.addActionListener(this); 
    add(b1); 
 
    JRadioButton b2 = new JRadioButton("B"); 
    b2.addActionListener(this); 
    add(b2); 
 
    JRadioButton b3 = new JRadioButton("C"); 
    b3.addActionListener(this); 
    add(b3); 
       
    // Define a button group. 
    ButtonGroup bg = new ButtonGroup(); 
    bg.add(b1); 
    bg.add(b2); 
    bg.add(b3); 
 
    // Create a text field and add it  
    // to the content pane. 
    tf = new JTextField(5); 
    add(tf); 
  } 
 
  public void actionPerformed(ActionEvent ae) { 
    tf.setText(ae.getActionCommand()); 
  } 
}

listing 7
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
/* 
  <applet code="JComboBoxDemo" width=300 height=100> 
  </applet> 
*/ 
   
public class JComboBoxDemo extends JApplet  
implements ItemListener { 
  JLabel jl; 
  ImageIcon france, germany, italy, japan; 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    setLayout(new FlowLayout()); 
 
    // Create a combo box and add it 
    // to the panel. 
    JComboBox jc = new JComboBox(); 
    jc.addItem("France"); 
    jc.addItem("Germany"); 
    jc.addItem("Italy"); 
    jc.addItem("Japan"); 
    jc.addItemListener(this); 
    add(jc); 
 
    // Create label. 
    jl = new JLabel(new ImageIcon("france.gif")); 
    add(jl); 
  } 
 
  public void itemStateChanged(ItemEvent ie) { 
    String s = (String)ie.getItem(); 
    jl.setIcon(new ImageIcon(s + ".gif")); 
  } 
}

listing 8
import javax.swing.*; 
/* 
  <applet code="JTabbedPaneDemo" width=400 height=100> 
  </applet> 
*/ 
   
 
public class JTabbedPaneDemo extends JApplet { 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    JTabbedPane jtp = new JTabbedPane(); 
    jtp.addTab("Cities", new CitiesPanel()); 
    jtp.addTab("Colors", new ColorsPanel()); 
    jtp.addTab("Flavors", new FlavorsPanel()); 
    add(jtp); 
  } 
} 
 
class CitiesPanel extends JPanel { 
 
  public CitiesPanel() { 
 
    JButton b1 = new JButton("New York"); 
    add(b1); 
    JButton b2 = new JButton("London"); 
    add(b2); 
    JButton b3 = new JButton("Hong Kong"); 
    add(b3); 
    JButton b4 = new JButton("Tokyo"); 
    add(b4); 
  } 
} 
 
class ColorsPanel extends JPanel { 
 
  public ColorsPanel() { 
 
    JCheckBox cb1 = new JCheckBox("Red"); 
    add(cb1); 
    JCheckBox cb2 = new JCheckBox("Green"); 
    add(cb2); 
    JCheckBox cb3 = new JCheckBox("Blue"); 
    add(cb3); 
  } 
} 
 
class FlavorsPanel extends JPanel { 
 
  public FlavorsPanel() { 
     
    JComboBox jcb = new JComboBox(); 
    jcb.addItem("Vanilla"); 
    jcb.addItem("Chocolate"); 
    jcb.addItem("Strawberry"); 
    add(jcb); 
  } 
}

listing 9
import java.awt.*; 
import javax.swing.*; 
/* 
  <applet code="JScrollPaneDemo" width=300 height=250> 
  </applet> 
*/ 
   
public class JScrollPaneDemo extends JApplet { 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  }     
 
  private void makeGUI() { 
 
    setLayout(new BorderLayout()); 
 
    // Add 400 buttons to a panel. 
    JPanel jp = new JPanel(); 
    jp.setLayout(new GridLayout(20, 20)); 
    int b = 0; 
    for(int i = 0; i < 20; i++) { 
      for(int j = 0; j < 20; j++) { 
        jp.add(new JButton("Button " + b)); 
        ++b; 
      } 
    } 
 
    // Add panel to a scroll pane. 
    int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED; 
    int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED; 
    JScrollPane jsp = new JScrollPane(jp, v, h); 
 
    // Add scroll pane to the content pane. 
    add(jsp, BorderLayout.CENTER); 
  } 
}

listing 10
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.tree.*; 
/* 
  <applet code="JTreeEvents" width=400 height=200> 
  </applet> 
*/ 
   
 
public class JTreeEvents extends JApplet { 
  JTree tree; 
  JTextField jtf; 
 
  public void init() { 
    try { 
      SwingUtilities.invokeAndWait( 
        new Runnable() { 
          public void run() { 
            makeGUI(); 
          } 
        } 
      ); 
    } catch (Exception exc) { 
      System.out.println("Can't create because of " + 
                         exc); 
    } 
  } 
 
  private void makeGUI() { 
 
    // Set layout manager. 
    setLayout(new BorderLayout()); 
 
    // Create top node of tree. 
    DefaultMutableTreeNode top = new DefaultMutableTreeNode("Options"); 
 
    // Create subtree of "A". 
    DefaultMutableTreeNode a = new DefaultMutableTreeNode("A"); 
    top.add(a); 
    DefaultMutableTreeNode a1 = new DefaultMutableTreeNode("A1"); 
    a.add(a1); 
    DefaultMutableTreeNode a2 = new DefaultMutableTreeNode("A2"); 
    a.add(a2); 
 
    // Create subtree of "B". 
    DefaultMutableTreeNode b = new DefaultMutableTreeNode("B"); 
    top.add(b); 
    DefaultMutableTreeNode b1 = new DefaultMutableTreeNode("B1"); 
    b.add(b1); 
    DefaultMutableTreeNode b2 = new DefaultMutableTreeNode("B2"); 
    b.add(b2); 
    DefaultMutableTreeNode b3 = new DefaultMutableTreeNode("B3"); 
    b.add(b3); 
 
    // Create tree. 
    tree = new JTree(top); 
 
    // Add tree to a scroll pane. 
    int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED; 
    int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED; 
    JScrollPane jsp = new JScrollPane(tree, v, h); 
 
    // Add scroll pane to the content pane. 
    add(jsp, BorderLayout.CENTER); 
 
    // Add text field to applet. 
    jtf = new JTextField("", 20); 
    add(jtf, BorderLayout.SOUTH); 
 
    // Anonymous inner class to handle mouse clicks. 
    tree.addMouseListener(new MouseAdapter() { 
      public void mouseClicked(MouseEvent me) { 
        doMouseClicked(me); 
      } 
    }); 
  } 
 
  void doMouseClicked(MouseEvent me) { 
    TreePath tp = tree.getPathForLocation(me.getX(), me.getY()); 
    if(tp != null) 
      jtf.setText(tp.toString()); 
    else 
      jtf.setText(""); 
  } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -