06. november 2003 - 09:01Der er
11 kommentarer og 1 løsning
problemer med at omdanne applet til applikation (via javax swing)
Hej eksperter Er der mon nogen, der kan hjælpe mig??? Jeg arbejder med Javax Swing for første gang og er kørt rimelig meget fast.
Jeg er ved at omdanne en fungerende applet til en applikation. Projektet består af en del ”funktionsklasser” (uppercase, lowercase osv.), som jeg formoder virker – det gjorde de i hvert fald under appletten. Disse er ikke medsendt.
Jeg tror måske noget af problemet ligger i mine if-else statements i StringAnalyzerklassen. Det, der ikke virker er ”Sæt”-knappen. Dvs. tekstfeltet bliver aldrig sat og dermed kan de forskellige metoder ikke kaldes. Jeg håber der er én, der kan kaste lidt lys over sagen… På forhånd tak! Louise.
(Jeg medsender StringAnalyzer-klassen, samt startklassen og et StringHolder-interface– hvis der er brug for mere så sig endelig til!)
if (s.equals(" Original tekst ")) { area.setText(original);
} else if (s.equals(" Små bogstaver ")) { area.setText(lowercased);
} else if (s.equals(" Store bogstaver ")) { area.setText(uppercased);
} else if (s.equals( " Renset tekst")) { area.setText(purified);
} else if (s.equals(" Lixtal ")) { area.setText(lixified);
} else if (s.equals(" Sæt tekst")) { if (isAnalyzing){ setAnalyzeMode(false); area.setEditable(false); knapper.setEnabled(isAnalyzing);
} else if (s.equals(" Ryd tekstbox ")){ String newText = area.getText(); original = new OriginalText(newText); lowercased = new LowercaseText(newText); uppercased = new UppercaseText(newText); purified = new PurifyText(newText); lixified = new LixText(newText); setAnalyzeMode(true); } validate(); }
nå for pokker - det må jeg lige afprøve (jeg har modemforbindelse æv dyrt! - så jeg hopper af og checker...)
Det med at tekstfeltet skal "sættes" betyder bare at når knappen "sæt" har været aktiveret bliver tekstfeltet "uredigerbart" og får en anden farve hvorefter de andre knapper kan trykkes på.
Du implementerer interfacet KeyPadClient og metoden i StringAnalyzer public class StringAnalyzer extends JFrame implements ActionListener, KeyPadClient {
Hvorfor gør du så dette ? private KeyPadClient kpc; // Og senere i din actionPerformed public void actionPerformed(ActionEvent e) { String keylabel = ((JButton)e.getSource()).getText(); kpc.keypressCallback(keylabel); // ???????????????????????????
keypressCallback(keylabel); // Sådan }
Du får aldrig kaldt din: public void keypressCallback(String s){ i StringAnalyzer, med mindre der sker et eller andet fancy i EmptyText() og det tvivler jeg på.
Måske skulle vi lige have klassen EmptyText() at se også !
Hej igen nej der sker vist ikke noget fancy... her er lidt flere klasser at kigge på. mht hvorfor jeg gør sådan er fordi at sådan har jeg læst det, der står i lærebogen om et andet eksempel."Java, java java" af Ralph Morelli. Så jeg forstår det sådan set ikke - jeg har bare prøvet at efterligne... Nogle forslag til hvad, jeg kan gøre ved det?
/** * @author Louise * @version 17 mar 2003 */
public class EmptyText implements StringHolder {
public EmptyText() {}
public String getTransformation() { return "(empty)"; }
public String getTransformed() { return " "; } }
/** * @author Louise * @version 17 mar 03 */
public interface StringHolder { public final String DELIMS = " .,!?\n\t"; public String getTransformed(); public String getTransformation();
}
/** * @author Louise * @version 10 oct 2002, revised 17 mar 2003 */ import java.awt.event.*; import javax.swing.*; import java.util.StringTokenizer; import java.awt.*;
public class WrappedTextArea extends JTextArea {
private final static Color disabledColor = new Color(225, 240, 240);
private int rows; private int columns; private StringHolder stringHolder = null;
public WrappedTextArea(int r, int c) { super(r, c) ; rows = r; columns = c; }
// --- Mutators ---
public void setText(StringHolder stringHolder) { StringBuffer sb = new StringBuffer(); String token; String unwrappedText = stringHolder.getTransformed();
StringTokenizer tnzr = new StringTokenizer(unwrappedText, " "); int remaining = columns;
Så har jeg snart kun et forslag tilbage, smid de klasser der mangler for at jeg kan køre det - jeg har formentlig lidt tid i overskud i morgen formiddag, så skal jeg kigge lidt mere seriøst på det.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.