Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package awtHomework5;
- import java.awt.*;
- import java.awt.event.*;
- public class AWTHomework5 extends Frame {
- Panel west, topW, center, east, topE, everything;
- TextField cityName;
- Button add, goLeft, goRight, goUp, goDown;
- Label leftCntr, rightCntr;
- List leftList, rightList;
- public AWTHomework5() {
- // west part:
- cityName = new TextField( 12);
- cityName.addTextListener( new TextFieldChanged());
- cityName.addKeyListener( new TextFieldChanged());
- add = new Button("add");
- add.setEnabled( false);
- add.addActionListener( new ButtonPressed());
- leftList = new List();
- leftList.addFocusListener( new ListChanged());
- leftList.addKeyListener( new ListChanged());
- leftCntr = new Label("Count: 0");
- topW = new Panel();
- topW.add(cityName);
- topW.add(add);
- west = new Panel(new BorderLayout());
- west.add(topW, BorderLayout.NORTH);
- west.add(leftList, BorderLayout.CENTER);
- west.add(leftCntr, BorderLayout.SOUTH);
- // center part:
- goLeft = new Button("<");
- goLeft.setEnabled( false);
- goLeft.addActionListener( new ButtonPressed());
- goRight = new Button(">");
- goRight.setEnabled( false);
- goRight.addActionListener( new ButtonPressed());
- Panel centerBtns = new Panel( new GridLayout(0,1));
- centerBtns.add( new Panel());
- centerBtns.add( new Panel());
- centerBtns.add( goLeft);
- centerBtns.add( new Panel());
- centerBtns.add( goRight);
- centerBtns.add( new Panel());
- centerBtns.add( new Panel());
- center = new Panel( new GridLayout(1,0));
- center.add( new Panel());
- center.add( new Panel());
- center.add( centerBtns);
- center.add( new Panel());
- center.add( new Panel());
- // east part:
- goUp = new Button("Up");
- goUp.setEnabled( false);
- goUp.addActionListener( new ButtonPressed());
- goDown = new Button("Down");
- goDown.setEnabled( false);
- goDown.addActionListener( new ButtonPressed());
- rightList = new List();
- rightList.addKeyListener( new ListChanged());
- rightList.addFocusListener( new ListChanged());
- rightList.addItemListener( new ListChanged());
- rightCntr = new Label("Count 0");
- topE = new Panel();
- topE.add( goUp);
- topE.add( goDown);
- east = new Panel(new BorderLayout());
- east.add( topE, BorderLayout.NORTH);
- east.add( rightList, BorderLayout.CENTER);
- east.add( rightCntr, BorderLayout.SOUTH);
- // the hole thing
- this.setLayout( new GridLayout(1,0));
- this.add(west);
- this.add(center);
- this.add(east);
- this.addWindowListener( new WindowClosing());
- this.setTitle("ListsDemo");
- this.setSize(500, 350);
- this.setVisible( true);
- }
- // MAIN
- public static void main(String[] args) {
- new AWTHomework5();
- }
- // inner class listening the buttons: add, goRight, goLeft, goUp, goDown
- class ButtonPressed implements ActionListener {
- public void actionPerformed ( ActionEvent e) {
- if(e.getSource() == add) {
- leftList.add( cityName.getText());
- leftCntr.setText("Cout:" + leftList.getItemCount());
- cityName.setText("");
- }
- if(e.getSource() == goRight) {
- int selectedIndex = leftList.getSelectedIndex();
- rightList.add( leftList.getSelectedItem());
- leftList.remove( selectedIndex);
- if( leftList.getItemCount()-1 >= selectedIndex){
- leftList.select( selectedIndex);
- }
- else if( leftList.getItemCount() == 0) goRight.setEnabled( false);
- else leftList.select( leftList.getItemCount()-1);
- rightCntr.setText("Count: "+ rightList.getItemCount());
- leftCntr.setText("Count: "+ leftList.getItemCount());
- }
- if(e.getSource() == goLeft) {
- int selectedIndex = rightList.getSelectedIndex();
- leftList.add( rightList.getSelectedItem());
- rightList.remove( selectedIndex);
- if( rightList.getItemCount()-1 >= selectedIndex) {
- rightList.select( selectedIndex);
- }
- else if( rightList.getItemCount() == 0) goLeft.setEnabled( false);
- else rightList.select( rightList.getItemCount()-1);
- leftCntr.setText("Count: "+ leftList.getItemCount());
- rightCntr.setText("Count: "+ rightList.getItemCount());
- }
- if(e.getSource() == goUp && rightList.getSelectedIndex() != 0 ) {
- int selectedIndex = rightList.getSelectedIndex();
- rightList.add( rightList.getSelectedItem(), selectedIndex-1);
- rightList.remove( selectedIndex+1);
- rightList.select( selectedIndex-1);
- if( rightList.getSelectedIndex() == 0 )
- goUp.setEnabled( false);
- }
- if(e.getSource() == goDown &&
- rightList.getSelectedIndex() != rightList.getItemCount()-1 ) {
- int selectedIndex = rightList.getSelectedIndex();
- rightList.add( rightList.getSelectedItem(), selectedIndex+2);
- rightList.remove( selectedIndex);
- rightList.select( selectedIndex+1);
- if( rightList.getSelectedIndex() == rightList.getItemCount()-1 )
- goDown.setEnabled( false);
- }
- }
- }
- // inner class listening the text field - cityName
- class TextFieldChanged implements TextListener, KeyListener {
- public void textValueChanged( TextEvent e) {
- TextField txt = (TextField)e.getSource();
- if(txt.getText().equals("")) {
- add.setEnabled( false);
- }
- else add.setEnabled( true);
- }
- public void keyPressed(KeyEvent e) {
- if( e.getKeyCode() == KeyEvent.VK_ENTER && !cityName.getText().equals("")) {
- leftList.add( cityName.getText());
- leftCntr.setText("Cout:" + leftList.getItemCount());
- cityName.setText("");
- }
- }
- public void keyReleased(KeyEvent e) {}
- public void keyTyped(KeyEvent e) {}
- }
- // inner class listening the lists: leftList, rightList
- class ListChanged implements FocusListener, KeyListener, ItemListener {
- public void focusGained(FocusEvent e) {
- if(e.getSource() == leftList && leftList.getItemCount() != 0 )
- goRight.setEnabled( true);
- if(e.getSource() == rightList && rightList.getItemCount() != 0 ){
- goLeft.setEnabled( true);
- goUp.setEnabled( true);
- goDown.setEnabled( true);
- }
- }
- public void focusLost(FocusEvent e) {
- goRight.setEnabled( false);
- goLeft.setEnabled( false);
- goUp.setEnabled( false);
- goDown.setEnabled( false);
- }
- public void itemStateChanged(ItemEvent e) {
- if( rightList.getSelectedIndex() != 0 )
- goUp.setEnabled( true);
- if( rightList.getSelectedIndex() == 0 )
- goUp.setEnabled( false);
- if( rightList.getSelectedIndex() != rightList.getItemCount()-1)
- goDown.setEnabled(true);
- if( rightList.getSelectedIndex() == rightList.getItemCount()-1)
- goDown.setEnabled(false);
- }
- // bonus KB bindings:
- public void keyPressed(KeyEvent e) {
- // leftList
- if(e.getSource() == leftList) {
- if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
- int selectedIndex = leftList.getSelectedIndex();
- rightList.add( leftList.getSelectedItem());
- leftList.remove( selectedIndex);
- if( leftList.getItemCount()-1 >= selectedIndex){
- leftList.select( selectedIndex);
- }
- else if( leftList.getItemCount() == 0) goRight.setEnabled( false);
- else leftList.select( leftList.getItemCount()-1);
- rightCntr.setText("Count: "+ rightList.getItemCount());
- leftCntr.setText("Count: "+ leftList.getItemCount());
- }
- if( e.getKeyCode() == KeyEvent.VK_DELETE )
- leftList.remove(leftList.getSelectedIndex());
- }
- // rightList
- if(e.getSource() == rightList) {
- if(e.getKeyCode() == KeyEvent.VK_LEFT) {
- int selectedIndex = rightList.getSelectedIndex();
- leftList.add( rightList.getSelectedItem());
- rightList.remove( selectedIndex);
- if( rightList.getItemCount()-1 >= selectedIndex) {
- rightList.select( selectedIndex);
- }
- else if( rightList.getItemCount() == 0) goLeft.setEnabled( false);
- else rightList.select( rightList.getItemCount()-1);
- leftCntr.setText("Count: "+ leftList.getItemCount());
- rightCntr.setText("Count: "+ rightList.getItemCount());
- }
- if(e.getKeyCode() == KeyEvent.VK_UP && rightList.getSelectedIndex() != 0 ) {
- int selectedIndex = rightList.getSelectedIndex();
- rightList.add( rightList.getSelectedItem(), selectedIndex-1);
- rightList.remove( selectedIndex+1);
- rightList.select( selectedIndex);
- if( rightList.getSelectedIndex() == 0 )
- goUp.setEnabled( false);
- }
- if(e.getKeyCode() == KeyEvent.VK_DOWN &&
- rightList.getSelectedIndex() != rightList.getItemCount()-1 ) {
- int selectedIndex = rightList.getSelectedIndex();
- rightList.add( rightList.getSelectedItem(), selectedIndex+2);
- rightList.remove( selectedIndex);
- rightList.select( selectedIndex);
- if( rightList.getSelectedIndex() == rightList.getItemCount()-1 )
- goDown.setEnabled( false);
- }
- if( e.getKeyCode() == KeyEvent.VK_DELETE )
- rightList.remove(rightList.getSelectedIndex());
- }
- }
- public void keyReleased(KeyEvent e) {}
- public void keyTyped(KeyEvent e) {}
- }
- // press "x" to close
- class WindowClosing extends WindowAdapter {
- public void windowClosing( WindowEvent e) {
- System.exit(0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment