10. december 2003 - 23:30
Der er
15 kommentarer
Sortering af ord i JTextArea vha. array.
Hejsa... Jeg er forholdsvis ny til det her, så det kan godt være det er ret simpelt. Men jeg spørger nu alligevel: jeg vil lave en applet, der kan sortere ord alfabetisk i et JTextArea, efter at de er blevet indtastet i et JTextField. Jeg kan bare ikke finde en metode til at gøre det med. kan I hjælpe mig? :o) import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Alfabet extends JApplet implements ActionListener { JTextField textField; JTextArea textArea; public void init() { JPanel contents = (JPanel)getContentPane(); contents.setBackground(Color.white); JLabel label = new JLabel("Input: "); textField = new JTextField(); textField.addActionListener(this); JButton button = new JButton("Tryk her"); button.addActionListener(this); textArea = new JTextArea(); textArea.setEditable(false); textArea.setLineWrap(true); JScrollPane scrollTextArea = new JScrollPane( textArea ); JPanel topPanel = new JPanel(new BorderLayout()); topPanel.setOpaque(false); topPanel.add( label, BorderLayout.WEST ); topPanel.add( textField, BorderLayout.CENTER ); topPanel.add( button, BorderLayout.EAST ); contents.add( topPanel, BorderLayout.NORTH ); contents.add( scrollTextArea, BorderLayout.CENTER ); }
Annonceindlæg fra Pointsharp
10. december 2003 - 23:34
#1
hvis du gemmer dine indtastede Strings i et array, mener jeg bare du kan sige: Arrays.sort(mitArray);
10. december 2003 - 23:36
#2
og derefter tilføje dem til dit JTextArea: for (int i = 0; i < mitArray.length; i++) { mitTextArea.append(mitArray[i] + "\n"); }
10. december 2003 - 23:38
#3
hvis du ikke kender antal ord der indtastes, vil det nok være bedre at bruge ArrayList. Der kan du dynamisk tilføje og slette Objekter fra.
10. december 2003 - 23:39
#4
Nu er de jo indtastet i textArea går jeg ud fra. Men: String words = textArea.getText().Split(" "); kunne lave et array.
10. december 2003 - 23:39
#5
String[] words = textArea.getText().Split(" ");
10. december 2003 - 23:41
#6
Så hvis du kombinerer: String[] words = textArea.getText().Split(" "); Arrays.sort(words); textArea.setText(""); for (int i = 0; i < words.length; i++) { textArea.append(words[i] + " "); }
10. december 2003 - 23:43
#7
Hvis de er indtastet ja, jeg havde forstået det sådan at man indtastede et ord og så blev det tilføjet til textarea'et.. den skulle så opdatere det textarea hver gang man havde skrevet et ord! Men jeg venter på en uddybende forklarting :)
10. december 2003 - 23:46
#8
der skulle selvfølgelig ha' stået forklaring...
10. december 2003 - 23:47
#9
Du har sikkert ret. Jeg tænkte bare at man indtastede i text area og klikkede på button og så blev text area sorteret.
11. december 2003 - 11:21
#10
Ja, det er meningen, at man indtaster ét ord, og så opdateres der hele tiden... Men jeg kan ikke rigtig få det til at virke. Jeg tror, jeg tilføjer det det forkert i forhold til resten af koden. Kan det være derfor?
12. december 2003 - 00:33
#11
Det her virker: public void actionPerformed(ActionEvent e) { String temp = textField.getText(); addText(temp); } public void addText(String text) { textArea.append(text + "\n"); String[] words = textArea.getText().split("\n"); Arrays.sort(words); textArea.setText(""); for (int i = 0; i < words.length; i++) { textArea.append(words[i] + "\n"); } } Du skal bare lige huske at: import java.util.Arrays;
15. december 2003 - 17:04
#12
Var der noget du kunne bruge???
02. januar 2004 - 12:38
#13
Lukketid?
01. marts 2004 - 21:55
#14
?
18. april 2004 - 10:38
#15
???
Kurser inden for grundlæggende programmering