15. december 2002 - 12:56
Der er
5 kommentarer og 2 løsninger
KeyListener
Lidt hjælp til en stakkels nybegynder :-) jeg har en knap når jeg klikker på udfører den en kode, jeg vil gerne have at når jeg trykker på højre piletast så udfører den samme kode, jeg har prøvet at lægge den i actionPerformed. hvor lægger jeg denn kode: if (e.getKeyCode() == KeyEvent.VK_RIGHT) { kode } Applet: public class test extends Applet implements MouseListener, MouseMotionListener, KeyListener, ActionListener, ........ { public void actionPerformed(ActionEvent e) { Object object = e.getSource(); if (object == knapFrem) { kode } } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } osv.... public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e) {} .... } ....
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
15. december 2002 - 16:23
#5
import java.awt.*; import java.awt.event.*; import javax.swing.*; class LommeRegner extends JFrame implements ActionListener,KeyListener,FocusListener { Container panel = getContentPane(); JTextArea felt; JScrollPane scroller; JTextField skriveFelt1,skriveFelt2; JButton plus,minus,gange,dividere; JLabel label; double ialt=0; public LommeRegner() { panel.setLayout(null); felt = new JTextArea(); scroller = new JScrollPane(felt); scroller.setBounds(10,10,375,200); felt.setEditable(false); panel.add(scroller); skriveFelt1 = new JTextField(); skriveFelt1.setBounds(105,220,80,20); skriveFelt1.addActionListener(this); skriveFelt1.addKeyListener(this); panel.add(skriveFelt1); skriveFelt2 = new JTextField(); skriveFelt2.setBounds(205,220,80,20); skriveFelt2.addActionListener(this); skriveFelt2.addKeyListener(this); panel.add(skriveFelt2); plus = new JButton("Plus"); plus.setFont(new Font("Arial",Font.BOLD,12)); plus.setBounds(40,280,70,20); plus.addActionListener(this); plus.addKeyListener(this); plus.addFocusListener(this); panel.add(plus); minus = new JButton("Minus"); minus.setBounds(120,280,70,20); minus.setFont(new Font("Arial",Font.BOLD,12)); minus.addActionListener(this); minus.addKeyListener(this); minus.addFocusListener(this); panel.add(minus); gange = new JButton("Gange"); gange.setBounds(200,280,70,20); gange.setFont(new Font("Arial",Font.BOLD,12)); gange.addActionListener(this); gange.addKeyListener(this); gange.addFocusListener(this); panel.add(gange); dividere = new JButton("Dividere"); dividere.setBounds(280,280,80,20); dividere.setFont(new Font("Arial",Font.BOLD,12)); dividere.addActionListener(this); dividere.addKeyListener(this); dividere.addFocusListener(this); panel.add(dividere); label = new JLabel("created by Erol Eskici 2002"); label.setBounds(278,364,120,10); label.setFont(new Font("Arial",Font.PLAIN,9)); panel.add(label); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public void addNotify() { super.addNotify(); skriveFelt1.requestFocus(); } ///////////////////////KEYLISTENER////////////////////////////////////////////// public void keyPressed(KeyEvent e) { if(e.getKeyCode() == 8) { String nyString=""; int tal = skriveFelt1.getText().length(); for(int i=0;i<(tal-1);i++) { nyString += skriveFelt1.getText().charAt(i); } skriveFelt1.setText(nyString); } if(e.getKeyCode() == 8) { String nyString=""; int tal = skriveFelt2.getText().length(); for(int i=0;i<(tal-1);i++) { nyString += skriveFelt2.getText().charAt(i); } skriveFelt2.setText(nyString); } if(e.getSource() == skriveFelt1) { if(e.getKeyCode() == 39)//pil frem { skriveFelt2.selectAll(); skriveFelt2.requestFocus(); } if(e.getKeyCode() == 40)//pil ned { plus.requestFocus(); } if(e.getKeyCode() == 38)//pil op { skriveFelt1.setText(""+ialt); } } if(e.getSource() == skriveFelt2) { if(e.getKeyCode() == 37)//pil tilbage { skriveFelt1.selectAll(); skriveFelt1.requestFocus(); } if(e.getKeyCode() == 40)//pil ned { dividere.requestFocus(); } } if(e.getSource() == plus) { if(e.getKeyCode() == 39)//pil frem { minus.requestFocus(); } if(e.getKeyCode() == 38)//pil op { skriveFelt1.selectAll(); skriveFelt1.requestFocus(); } } if(e.getSource() == minus) { if(e.getKeyCode() == 39)//pil frem { gange.requestFocus(); } if(e.getKeyCode() == 37)//pil tilbage { plus.requestFocus(); } if(e.getKeyCode() == 38)//pil op { skriveFelt1.selectAll(); skriveFelt1.requestFocus(); } } if(e.getSource() == gange) { if(e.getKeyCode() == 39)//pil frem { dividere.requestFocus(); } if(e.getKeyCode() == 37)//pil tilbage { minus.requestFocus(); } if(e.getKeyCode() == 38)//pil op { skriveFelt2.selectAll(); skriveFelt2.requestFocus(); } } if(e.getSource() == dividere) { if(e.getKeyCode() == 37)//pil tilbage { gange.requestFocus(); } if(e.getKeyCode() == 38)//pil op { skriveFelt2.selectAll(); skriveFelt2.requestFocus(); } } } public void keyReleased(KeyEvent e) {} public void keyTyped(KeyEvent e) { if(e.getSource() == skriveFelt1) { char knap = e.getKeyChar(); if(Character.isDigit(knap))return; else e.consume(); } if(e.getSource() == skriveFelt2) { char knap = e.getKeyChar(); if(Character.isDigit(knap))return; else e.consume(); } } // //////////////////////////////////FOCUSEVENT///////////////////////////////////// public void focusGained(java.awt.event.FocusEvent fe) { Object source = fe.getSource(); if (source == plus) { plus.setForeground(Color.red); } if ( source == minus) { minus.setForeground(Color.red); } if ( source == gange) { gange.setForeground(Color.red); } if ( source == dividere) { dividere.setForeground(Color.red); } if ( source == felt) { skriveFelt1.requestFocus(); } } public void focusLost(java.awt.event.FocusEvent fe) { Object source = fe.getSource(); if ( source == plus) { plus.setForeground(Color.black); } if ( source == minus) { minus.setForeground(Color.black); } if ( source == gange) { gange.setForeground(Color.black); } if ( source == dividere) { dividere.setForeground(Color.black); } } //////////////////////ACTIONLISTENER//////////////////////////////////////////// public void actionPerformed(ActionEvent e) { if(e.getSource()==plus && skriveFelt1.getText().length() != 0 && skriveFelt2.getText().length() != 0) { double felt1 = Double.parseDouble(skriveFelt1.getText()); double felt2 = Double.parseDouble(skriveFelt2.getText()); ialt = felt1+felt2; felt.append(" "+felt1+" + "+felt2+" = "+ialt+"\n"); skriveFelt1.setText(""); skriveFelt2.setText(""); skriveFelt1.requestFocus(); } if(e.getSource()==minus && skriveFelt1.getText().length() != 0 && skriveFelt2.getText().length() != 0) { double felt1 = Double.parseDouble(skriveFelt1.getText()); double felt2 = Double.parseDouble(skriveFelt2.getText()); ialt = felt1-felt2; felt.append(" "+felt1+" - "+felt2+" = "+ialt+"\n"); skriveFelt1.setText(""); skriveFelt2.setText(""); skriveFelt1.requestFocus(); } if(e.getSource()==gange && skriveFelt1.getText().length() != 0 && skriveFelt2.getText().length() != 0) { double felt1 = Double.parseDouble(skriveFelt1.getText()); double felt2 = Double.parseDouble(skriveFelt2.getText()); ialt = felt1*felt2; felt.append(" "+felt1+" * "+felt2+" = "+ialt+"\n"); skriveFelt1.setText(""); skriveFelt2.setText(""); skriveFelt1.requestFocus(); } if(e.getSource()==dividere && skriveFelt1.getText().length() != 0 && skriveFelt2.getText().length() != 0) { double felt1 = Double.parseDouble(skriveFelt1.getText()); double felt2 = Double.parseDouble(skriveFelt2.getText()); ialt = felt1/felt2; felt.append(" "+felt1+" / "+felt2+" = "+ialt+"\n"); skriveFelt1.setText(""); skriveFelt2.setText(""); skriveFelt1.requestFocus(); } } public static void main(String[] aslan) { LommeRegner mainFrame = new LommeRegner(); mainFrame.setBounds(300,150,400,400); mainFrame.setResizable(false); mainFrame.setTitle("LommeRegner"); mainFrame.setVisible(true); } }