LeoPao13 Δημοσ. 5 Ιουνίου 2012 Δημοσ. 5 Ιουνίου 2012 Γεια σας! Φτιάχνω έναν editor τύπου Word για την εργασία του εξαμήνου μου και έχω μερικές απορίες αν μπορείτε να μου τις λύσετε.. Αρχικά προσπαθω σε αυτό το κομμάτι κώδικα να έχω απενεργοποιημένο στο μενού το Cut;όπως επίσης και στο Copy και να ενεργοποιείται μόνο όταν είναι επιλεγμένο ένα κομμάτι από το κείμενο που είναι γραμμένο στο TextArea, αλλά δεν δουλεύει. >Cut=new JMenuItem(new DefaultEditorKit.CutAction()); ImageIcon ic=new ImageIcon("C:/Documents and Settings/All Users/Επιφάνεια εργασίας/cut.png"); Cut.setText("Cut"); Cut.setMnemonic('C'); Cut.setAccelerator(KeyStroke.getKeyStroke('C',1)); Edit.add(Cut); if( ta.getSelectedText()== null) Cut.setEnabled(false); else if(ta.getSelectedText(!=null) Cut.setEnabled(true); Ακόμα αν μπορείτε να με βοηθήσετε με το Save as το οποίο δεν ξέρω πως να υλοποιήσω.
pantpesl2 Δημοσ. 5 Ιουνίου 2012 Δημοσ. 5 Ιουνίου 2012 Αυτό που έχεις γράψει λογικά σου πετάει σφάλμα, αφού έχεις ξεχάσει μια παρένθεση στο else if. Εκτός αυτού, δε χρειάζεται καν η else if, απλά βάλε μόνο else.
nilosgr Δημοσ. 5 Ιουνίου 2012 Δημοσ. 5 Ιουνίου 2012 Μα αυτό το block με το if-else τρέχει μια φορά. Οπότε το κουμπάκι θα είναι disabled. Αν θες η κατάσταση του να αλλάζει δυναμικά κατά το runtime, τότε πρέπει να βάλεις έναν action listener και να χειρίζεσαι το event το οποίο γίνεται fire όταν ο χρήστης επιλέγει κάποιο κομμάτι του κειμένου. (το event είναι καλύτερα να ψάξεις στο API να το βρεις μόνος σου ;-) )
xlomo Δημοσ. 6 Ιουνίου 2012 Δημοσ. 6 Ιουνίου 2012 Στο event mouse release στο text area, ψάχνε να δεις αν το selection Start και το selection End είναι διαφορετικά, δεν θυμάμαι αν μπορείς να το κάνεις και από GetSelectedText ή κάτι αντοίστιχο για να δεις αν το lenght είναι μεγαλύτερο από 0.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα