Επισκέπτης Δημοσ. 15 Οκτωβρίου 2006 Δημοσ. 15 Οκτωβρίου 2006 prospathw na thymhthw pws prosthetw KeyListener se ena koympi alla de moy doyleyei... exw thn entypwsh omws oti ayth einai h diadikasia poy eixa akoloythisei kai paliotera... anyway,ksethapsa ena arxeio apo mia ergasia 3-ou eksamhnoy h opoia trexei kanonika,apla to koympi "Submit" den apokrinetai sto ENTER... an mporeite na me bohthisete gaiti exw skalwsei twra.. eyxaristw... /* episynaptw to arxeio java gia opoion de barietai na to treksei */ databaseQStart.zip
deker Δημοσ. 15 Οκτωβρίου 2006 Δημοσ. 15 Οκτωβρίου 2006 Έχεις βάλει κώδικα στην actionPerformed για να ανταποκρίνεται το submit; Ίσως και να κάνω λάθος αλλά από μια πρόχειρη ματιά που έριξα στον κώδικά σου, γράφεις στην actionPerformed τα εξής: //Energeies poy tha ginoyn an path9hke to koympi submit. if(source==submit) { } και σταματάει εκεί το μπλοκ if και αρχίζεις με άλλο: if(source ==clear)...... Μπορεί και να έχω κάνει λάθος γιατί δεν έχω κοιτάξει αναλυτικά τον κώδικα αλλά αξίζει να το κοιτάξεις.
Επισκέπτης Δημοσ. 15 Οκτωβρίου 2006 Δημοσ. 15 Οκτωβρίου 2006 katarxas na se eyxaristisw poy mphkes ston kopo estw na toy rikseis mia matia sta grhgora... o kwdikas einai kommenos...dld mesa sth submit eftiaxna stigmiotypo allhs klashs prokeimenoy na kanei syndesh me th bash...ara de mas endiaferei oti den einai leitoyrgiko oson afora th bash.. ta koumpia opws katalabaineis apokrinontai thaymasia otan ta patas me to pontikh...to thema einai oti de moy doyleyei to ENTER,dhladh sthn oysia to koympi ayto den exei "sysxetistei" me to "Submit" Bottom line,me endiaferei otan pataw to enter na einai san na exw pathsei me to pontikh to "Submit"...elpizw na einai pio katanohto ayth th fora..
deker Δημοσ. 15 Οκτωβρίου 2006 Δημοσ. 15 Οκτωβρίου 2006 Ok katalava ti thes. Prepei na energopoihseis ta inputMap kai actionMap. Einai 2 Maps profanws. To inputMap tha kalesei ena action apo to actionMap, sthn sugkekrimenh periptwsh to ENTER na antapokrinetai se opoio koumpi theleis. Den exw poly xrono na sou grapsw kwdika auth th stigmh, elpizw na katalaves peripou thn methodologia. Tha prospathisw na katsw aurio (just for u ) kai na grapsw analutika pws prepei na ginei. An wstoso viazesai kai thes amesa thn lush, mporeis na upovaleis to erwthma sou sto http://www.jhug.gr . Tha se vohthisoun sigoura kai amesa. Elpizw na vohthisa estw kai ligo.
Επισκέπτης Δημοσ. 16 Οκτωβρίου 2006 Δημοσ. 16 Οκτωβρίου 2006 ok,eyxaristw poly.. exeis dikio,ayto einai...
deker Δημοσ. 16 Οκτωβρίου 2006 Δημοσ. 16 Οκτωβρίου 2006 Μου έδωσαν μια πολύ πιο απλή απάντηση στο ερώτημά σου τελικά από το http://www.jhug.gr. Το δοκίμασα και έπαιξε μια χαρά σε εμένα. Ο κώδικας είναι ο παρακάτω: import java.sql.*; import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.*; /** * H klash databaseQStart ylopoiei th leitoyrgikothta toy para9yroy poy emfanizetai sto * k ton protrepei na eisagei ta stoixeia toy gia na synde9ei sth bash. */ public class databaseQStart extends JFrame implements ActionListener,KeyListener { private JButton submit; private JButton ext; private JButton clear; private JComboBox userChoice; private JPasswordField passField; private JLabel userSelect; private JLabel enterPass; private static String text; private static int i=1; private JPanel panel; /** * Constructor. */ public databaseQStart(){ //Ry9mish toy mege9oys k toy layout toy JFrame. super("Database connection window"); setSize(500,300); //setBounds(500,300,250,250); //setPreferredSize (new Dimension (507, 272)); //places the frame in the middle of the screen Dimension dim=getToolkit().getScreenSize(); this.setLocation(dim.width/2-this.getWidth()/2,dim.height/2-this.getHeight()/2); //Arxikopoioyme ta components poy 9a baloyme sto JPanel. String[] userChoiceItems = {"use1","user2","user2"}; submit = new JButton ("Submit"); submit.setForeground(SystemColor.blue); ext = new JButton ("Exit"); ext.setForeground(SystemColor.red); clear = new JButton ("Clear"); userChoice = new JComboBox (userChoiceItems); passField = new JPasswordField (5); userSelect = new JLabel ("Select user"); enterPass = new JLabel ("Enter password"); submit.setToolTipText (""); ext.setToolTipText (""); clear.setToolTipText (""); panel=new JPanel(); panel.setBackground(SystemColor.lightGray); //Pros9etoyme ta components sto JPanel. panel.add (submit); panel.add (ext); panel.add (clear); panel.add (userChoice); panel.add (passField); panel.add (userSelect); panel.add (enterPass); //Rythmizoyme to xrwma twn components submit.setBackground(SystemColor.lightGray); ext.setBackground(SystemColor.lightGray); clear.setBackground(SystemColor.lightGray); userChoice.setBackground(SystemColor.lightGray); userSelect.setBackground(SystemColor.lightGray); enterPass.setBackground(SystemColor.lightGray); //Ry9mizoyme xeirokinhta ta bounds gia ka9e component mesa sto JPanel. submit.setBounds (225, 235, 100, 20); ext.setBounds (385, 235, 100, 20); clear.setBounds (15, 235, 100, 20); userChoice.setBounds (225, 65, 260, 25); passField.setBounds (225, 150, 260, 25); userSelect.setBounds (15, 65, 170, 25); enterPass.setBounds (15, 150, 195, 25); //Prosthetoume ta koumpia ston ActionListener //wste na antapokrinontai sto patima tous. submit.addActionListener(this); ext.addActionListener(this); clear.addActionListener(this); userChoice.addActionListener(this); passField.addActionListener(this); submit.addKeyListener(this); panel.setLayout (null); /* submit.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(java.awt.event.KeyEvent evt) { KeyEvent(evt); } });*/ getContentPane().add(panel); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); setVisible (true); } /** * Main. */ public static void main (String[] args){ databaseQStart dbQStart=new databaseQStart(); } /** * Xeirizetai ta koumpia toy parathiroy. */ public void actionPerformed(ActionEvent aevt) { submit.requestFocusInWindow(); Object source=aevt.getSource(); //Energeies poy 9a ginoyn an path9hke to koympi submit. if(source==submit) { // edw tha mpoun oi energeies pou thelw na kanei } //An path9ei to clear 9a ka9arisei to passField. else if(source==clear) { passField.setText(""); } //Telos an path9ei to ext, 9a kleisei h syndesh me th bash (an exei ginei) //k 9a kleisei to programma. else if(source==ext){ System.exit(0); } } /** *Sthn oysia na taythsoyme merika plhktra me koympia ths diepafhs prokeimenoy *na kanoyme th xrhsh toy programmatos pio eykolh **/ public void keyPressed(KeyEvent evt) { int source=evt.getKeyCode(); if(source==java.awt.event.KeyEvent.VK_ENTER){ System.out.println("this is a test"); } } public void keyTyped(KeyEvent event){} public void keyReleased(KeyEvent event){ int source=event.getKeyCode(); if(source==java.awt.event.KeyEvent.VK_ENTER){ System.out.println("this is a test released"); } } /* private void KeyEvent(java.awt.event.KeyEvent evt) { int source=evt.getKeyCode(); if(source==java.awt.event.KeyEvent.VK_ENTER){ System.out.println("this is a test"); } } */ } //Telos klashs databaseQStart. Αυτό που έχει αλλάξει στον κώδικά σου, είναι μερικές μόνο γραμμές. Στην actionPerformed σαν πρώτη εντολή έχει προστεθεί η πρόταση :submit.requestFocusInWindow(); και επίσης έχουν προστεθεί μερικές γραμμές στην μέθοδο ΚeyReleased: int source=event.getKeyCode(); if(source==java.awt.event.KeyEvent.VK_ENTER){ System.out.println("this is a test released"); } Αυτά μέχρι στιγμής. Τρέξε το πρόγραμμα, επέλεξε ένα χρήστη, γράψε τον κωδικό και πάτα ENTER. Λογικά πρέπει να σου εμφανίσει το μήνυμα " this is a test released". Μπορείς να προσθέσεις και άλλες ενέργειες που θες να κάνεις στην ίδια μέθοδο για να δεις αν λειτουργεί το submit από το πληκτρολόγιο με τη χρήση ENTER. Ελπίζω να ήμουν κατατοπιστικός γιατί γνωρίζω ότι στα λόγια δεν είμαι και δάσκαλος και τα λέω ώρες ώρες ακαταλαβίστικα . Για οποιαδήποτε άλλη απορία έχεις μη διστάσεις, ακόμα και αν σου βγάλει πάλι λάθος στείλε ένα μνμ. Υ.Γ Δοκίμασα το πρόγραμμα σε Windows XP και JDK 1.5 !!!
Επισκέπτης Δημοσ. 16 Οκτωβρίου 2006 Δημοσ. 16 Οκτωβρίου 2006 eyxaristw poly file moy... an deis ton kwdika poy einai mesa se sxolia,ayto akribws to pragma prospathoysa,alla den eixa balei thn requestFocusInWindow() opote kai de doyleye.. anyway,thnx a bunch...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.