You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
4.8 KiB
Java

Hashtable class examples
// Demonstrates class Hashtable of the java.util package.
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HashtableTest extends JFrame
{
public HashtableTest()
{
super( "Hashtable Example" );
final JLabel status = new JLabel();
final Hashtable table = new Hashtable();
final JTextArea display = new JTextArea( 4, 20 );
display.setEditable( false );
JPanel northPanel = new JPanel();
northPanel.setLayout( new BorderLayout() );
JPanel northSubPanel = new JPanel();
northSubPanel.add( new JLabel( "First name" ) );
final JTextField fName = new JTextField( 8 );
northSubPanel.add( fName );
northSubPanel.add( new JLabel( "Last name (key)" ) );
final JTextField lName = new JTextField( 8 );
northSubPanel.add( lName );
northPanel.add( northSubPanel, BorderLayout.NORTH );
northPanel.add( status, BorderLayout.SOUTH );
JPanel southPanel = new JPanel();
southPanel.setLayout( new GridLayout( 2, 5 ) );
JButton put = new JButton( "Put" );
put.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
Employee emp = new Employee( fName.getText(), lName.getText() );
Object val = table.put( lName.getText(), emp );
if ( val == null )
status.setText( "Put: " + emp.toString() );
else
status.setText( "Put: " + emp.toString() + "; Replaced: " + val.toString() );
}
} );
southPanel.add( put );
JButton get = new JButton( "Get" );
get.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
Object val = table.get( lName.getText() );
if ( val != null )
status.setText( "Get: " + val.toString() );
else
status.setText( "Get: " + lName.getText() + " not in table" );
}
} );
southPanel.add( get );
JButton remove = new JButton( "Remove" );
remove.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
Object val = table.remove( lName.getText() );
if ( val != null )
status.setText( "Remove: " + val.toString() );
else
status.setText( "Remove: " + lName.getText() + " not in table" );
}
} );
southPanel.add( remove );
JButton empty = new JButton( "Empty" );
empty.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
status.setText( "Empty: " + table.isEmpty() );
}
} );
southPanel.add( empty );
JButton containsKey = new JButton( "Contains key" );
containsKey.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
status.setText( "Contains key: " + table.containsKey( lName.getText() ) );
}
} );
southPanel.add( containsKey );
JButton clear = new JButton( "Clear table" );
clear.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
table.clear();
status.setText( "Clear: Table is now empty" );
}
} );
southPanel.add( clear );
JButton listElems = new JButton( "List objects" );
listElems.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
StringBuffer buf = new StringBuffer();
for ( Enumeration enum = table.elements(); enum.hasMoreElements(); )
buf.append( enum.nextElement() ).append( '\n' );
display.setText( buf.toString() );
}
} );
southPanel.add( listElems );
JButton listKeys = new JButton( "List keys" );
listKeys.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
StringBuffer buf = new StringBuffer();
for ( Enumeration enum = table.keys(); enum.hasMoreElements(); )
buf.append(enum.nextElement() ).append( '\n' );
JOptionPane.showMessageDialog( null, buf.toString(), "Display", JOptionPane.PLAIN_MESSAGE );
}
} );
southPanel.add( listKeys );
Container c = getContentPane();
c.add( northPanel, BorderLayout.NORTH );
c.add( new JScrollPane( display ), BorderLayout.CENTER );
c.add( southPanel, BorderLayout.SOUTH );
setSize( 540, 300 );
show();
}
public static void main( String args[] )
{
HashtableTest app = new HashtableTest();
app.addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
} );
}
}
class Employee
{
private String first, last;
public Employee( String fName, String lName )
{
first = fName;
last = lName;
}
public String toString()
{
return first + " " + last;
}
}