VasilM

AWTHomework5

Apr 9th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.97 KB | None | 0 0
  1. package awtHomework5;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4.  
  5. public class AWTHomework5 extends Frame {
  6.  
  7.     Panel west, topW, center, east, topE, everything;
  8.     TextField cityName;
  9.     Button add, goLeft, goRight, goUp, goDown;
  10.     Label leftCntr, rightCntr;
  11.     List leftList, rightList;
  12.    
  13.     public AWTHomework5() {
  14.         // west part:
  15.         cityName = new TextField( 12);
  16.         cityName.addTextListener( new TextFieldChanged());
  17.         cityName.addKeyListener( new TextFieldChanged());
  18.         add = new Button("add");
  19.         add.setEnabled( false);
  20.         add.addActionListener( new ButtonPressed());
  21.         leftList = new List();
  22.         leftList.addFocusListener( new ListChanged());
  23.         leftList.addKeyListener( new ListChanged());
  24.         leftCntr = new Label("Count: 0");
  25.         topW = new Panel();
  26.         topW.add(cityName);
  27.         topW.add(add);
  28.         west = new Panel(new BorderLayout());
  29.         west.add(topW, BorderLayout.NORTH);
  30.         west.add(leftList, BorderLayout.CENTER);
  31.         west.add(leftCntr, BorderLayout.SOUTH);
  32.        
  33.         // center part:
  34.         goLeft = new Button("<");
  35.         goLeft.setEnabled( false);
  36.         goLeft.addActionListener( new ButtonPressed());
  37.         goRight = new Button(">");
  38.         goRight.setEnabled( false);
  39.         goRight.addActionListener( new ButtonPressed());
  40.         Panel centerBtns = new Panel( new GridLayout(0,1));
  41.         centerBtns.add( new Panel());
  42.         centerBtns.add( new Panel());
  43.         centerBtns.add( goLeft);
  44.         centerBtns.add( new Panel());
  45.         centerBtns.add( goRight);
  46.         centerBtns.add( new Panel());
  47.         centerBtns.add( new Panel());
  48.         center = new Panel( new GridLayout(1,0));
  49.         center.add( new Panel());
  50.         center.add( new Panel());
  51.         center.add( centerBtns);
  52.         center.add( new Panel());
  53.         center.add( new Panel());
  54.        
  55.         // east part:
  56.         goUp = new Button("Up");
  57.         goUp.setEnabled( false);
  58.         goUp.addActionListener( new ButtonPressed());
  59.         goDown = new Button("Down");
  60.         goDown.setEnabled( false);
  61.         goDown.addActionListener( new ButtonPressed());
  62.         rightList = new List();
  63.         rightList.addKeyListener( new ListChanged());
  64.         rightList.addFocusListener( new ListChanged());
  65.         rightList.addItemListener( new ListChanged());
  66.         rightCntr = new Label("Count 0");
  67.         topE = new Panel();
  68.         topE.add( goUp);
  69.         topE.add( goDown);
  70.         east = new Panel(new BorderLayout());
  71.         east.add( topE, BorderLayout.NORTH);
  72.         east.add( rightList, BorderLayout.CENTER);
  73.         east.add( rightCntr, BorderLayout.SOUTH);
  74.        
  75.         // the hole thing
  76.         this.setLayout( new GridLayout(1,0));
  77.         this.add(west);
  78.         this.add(center);
  79.         this.add(east);
  80.         this.addWindowListener( new WindowClosing());
  81.         this.setTitle("ListsDemo");
  82.         this.setSize(500, 350);
  83.         this.setVisible( true);
  84.     }
  85.    
  86.     // MAIN
  87.     public static void main(String[] args) {
  88.         new AWTHomework5();
  89.     }
  90.    
  91.     // inner class listening the buttons: add, goRight, goLeft, goUp, goDown
  92.     class ButtonPressed implements ActionListener {
  93.         public void actionPerformed ( ActionEvent e) {
  94.             if(e.getSource() == add) {
  95.                 leftList.add( cityName.getText());
  96.                 leftCntr.setText("Cout:" + leftList.getItemCount());
  97.                 cityName.setText("");
  98.             }
  99.            
  100.             if(e.getSource() == goRight) {
  101.                 int selectedIndex = leftList.getSelectedIndex();
  102.                 rightList.add( leftList.getSelectedItem());
  103.                 leftList.remove( selectedIndex);
  104.                 if( leftList.getItemCount()-1 >= selectedIndex){
  105.                     leftList.select( selectedIndex);
  106.                 }
  107.                 else if( leftList.getItemCount() == 0) goRight.setEnabled( false);
  108.                 else leftList.select( leftList.getItemCount()-1);
  109.                 rightCntr.setText("Count: "+ rightList.getItemCount());
  110.                 leftCntr.setText("Count: "+ leftList.getItemCount());
  111.             }
  112.            
  113.             if(e.getSource() == goLeft) {
  114.                 int selectedIndex = rightList.getSelectedIndex();
  115.                 leftList.add( rightList.getSelectedItem());
  116.                 rightList.remove( selectedIndex);
  117.                 if( rightList.getItemCount()-1 >= selectedIndex) {
  118.                     rightList.select( selectedIndex);
  119.                 }
  120.                 else if( rightList.getItemCount() == 0) goLeft.setEnabled( false);
  121.                 else rightList.select( rightList.getItemCount()-1);
  122.                 leftCntr.setText("Count: "+ leftList.getItemCount());
  123.                 rightCntr.setText("Count: "+ rightList.getItemCount());
  124.             }
  125.            
  126.             if(e.getSource() == goUp && rightList.getSelectedIndex() != 0 ) {
  127.                 int selectedIndex = rightList.getSelectedIndex();
  128.                 rightList.add( rightList.getSelectedItem(), selectedIndex-1);
  129.                 rightList.remove( selectedIndex+1);
  130.                 rightList.select( selectedIndex-1);
  131.                 if( rightList.getSelectedIndex() == 0 )
  132.                     goUp.setEnabled( false);
  133.             }
  134.            
  135.             if(e.getSource() == goDown &&
  136.                     rightList.getSelectedIndex() != rightList.getItemCount()-1 ) {
  137.                 int selectedIndex = rightList.getSelectedIndex();
  138.                 rightList.add( rightList.getSelectedItem(), selectedIndex+2);
  139.                 rightList.remove( selectedIndex);
  140.                 rightList.select( selectedIndex+1);
  141.                 if( rightList.getSelectedIndex() == rightList.getItemCount()-1 )
  142.                     goDown.setEnabled( false);
  143.             }
  144.         }
  145.     }
  146.    
  147.     // inner class listening the text field - cityName
  148.     class TextFieldChanged implements TextListener, KeyListener {
  149.        
  150.         public void textValueChanged( TextEvent e) {
  151.             TextField txt = (TextField)e.getSource();
  152.             if(txt.getText().equals("")) {
  153.                 add.setEnabled( false);
  154.             }
  155.             else add.setEnabled( true);
  156.         }  
  157.        
  158.         public void keyPressed(KeyEvent e) {
  159.             if( e.getKeyCode() == KeyEvent.VK_ENTER && !cityName.getText().equals("")) {
  160.                 leftList.add( cityName.getText());
  161.                 leftCntr.setText("Cout:" + leftList.getItemCount());
  162.                 cityName.setText("");
  163.             }
  164.         }
  165.         public void keyReleased(KeyEvent e) {}
  166.         public void keyTyped(KeyEvent e) {}
  167.     }
  168.  
  169.     // inner class listening the lists: leftList, rightList
  170.     class ListChanged implements FocusListener, KeyListener, ItemListener {
  171.        
  172.         public void focusGained(FocusEvent e) {
  173.             if(e.getSource() == leftList && leftList.getItemCount() != 0 )
  174.                 goRight.setEnabled( true);
  175.             if(e.getSource() == rightList && rightList.getItemCount() != 0 ){
  176.                 goLeft.setEnabled( true);
  177.                 goUp.setEnabled( true);
  178.                 goDown.setEnabled( true);
  179.             }
  180.         }
  181.        
  182.         public void focusLost(FocusEvent e) {
  183.             goRight.setEnabled( false);
  184.             goLeft.setEnabled( false);
  185.             goUp.setEnabled( false);
  186.             goDown.setEnabled( false);
  187.         }
  188.        
  189.         public void itemStateChanged(ItemEvent e) {
  190.             if( rightList.getSelectedIndex() != 0 )
  191.                 goUp.setEnabled( true);
  192.             if( rightList.getSelectedIndex() == 0 )
  193.                 goUp.setEnabled( false);
  194.             if( rightList.getSelectedIndex() != rightList.getItemCount()-1)
  195.                 goDown.setEnabled(true);
  196.             if( rightList.getSelectedIndex() == rightList.getItemCount()-1)
  197.                 goDown.setEnabled(false);      
  198.         }  
  199.        
  200.         // bonus KB bindings:
  201.         public void keyPressed(KeyEvent e) {
  202.             // leftList
  203.             if(e.getSource() == leftList) {
  204.                 if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
  205.                     int selectedIndex = leftList.getSelectedIndex();
  206.                     rightList.add( leftList.getSelectedItem());
  207.                     leftList.remove( selectedIndex);
  208.                     if( leftList.getItemCount()-1 >= selectedIndex){
  209.                         leftList.select( selectedIndex);
  210.                     }
  211.                     else if( leftList.getItemCount() == 0) goRight.setEnabled( false);
  212.                     else leftList.select( leftList.getItemCount()-1);
  213.                     rightCntr.setText("Count: "+ rightList.getItemCount());
  214.                     leftCntr.setText("Count: "+ leftList.getItemCount());
  215.                 }
  216.                 if( e.getKeyCode() == KeyEvent.VK_DELETE )
  217.                     leftList.remove(leftList.getSelectedIndex());
  218.             }
  219.             // rightList
  220.             if(e.getSource() == rightList) {
  221.                 if(e.getKeyCode() == KeyEvent.VK_LEFT) {
  222.                     int selectedIndex = rightList.getSelectedIndex();
  223.                     leftList.add( rightList.getSelectedItem());
  224.                     rightList.remove( selectedIndex);
  225.                     if( rightList.getItemCount()-1 >= selectedIndex) {
  226.                         rightList.select( selectedIndex);
  227.                     }
  228.                     else if( rightList.getItemCount() == 0) goLeft.setEnabled( false);
  229.                     else rightList.select( rightList.getItemCount()-1);
  230.                     leftCntr.setText("Count: "+ leftList.getItemCount());
  231.                     rightCntr.setText("Count: "+ rightList.getItemCount());
  232.                 }              
  233.                 if(e.getKeyCode() == KeyEvent.VK_UP && rightList.getSelectedIndex() != 0 ) {
  234.                     int selectedIndex = rightList.getSelectedIndex();
  235.                     rightList.add( rightList.getSelectedItem(), selectedIndex-1);
  236.                     rightList.remove( selectedIndex+1);
  237.                     rightList.select( selectedIndex);
  238.                     if( rightList.getSelectedIndex() == 0 )
  239.                         goUp.setEnabled( false);
  240.                 }          
  241.                 if(e.getKeyCode() == KeyEvent.VK_DOWN &&
  242.                         rightList.getSelectedIndex() != rightList.getItemCount()-1 ) {
  243.                     int selectedIndex = rightList.getSelectedIndex();
  244.                     rightList.add( rightList.getSelectedItem(), selectedIndex+2);
  245.                     rightList.remove( selectedIndex);
  246.                     rightList.select( selectedIndex);
  247.                     if( rightList.getSelectedIndex() == rightList.getItemCount()-1 )
  248.                         goDown.setEnabled( false);
  249.                 }
  250.                 if( e.getKeyCode() == KeyEvent.VK_DELETE )
  251.                     rightList.remove(rightList.getSelectedIndex());
  252.             }
  253.         }
  254.         public void keyReleased(KeyEvent e) {}
  255.         public void keyTyped(KeyEvent e) {}
  256.     }
  257.    
  258.     // press "x" to close
  259.     class WindowClosing extends WindowAdapter {
  260.         public void windowClosing( WindowEvent e) {
  261.             System.exit(0);
  262.         }
  263.     }
  264. }
Advertisement
Add Comment
Please, Sign In to add comment