JTextArea-select-Verzweiflung



  • hi

    ich weiss nicht mehr weiter.habe eine JTextArea.in dieser will ich auf button druck einen Teil des enthaltenen Textes selectieren (also diese lila markieren ;-)) sollte mit JTextArea.select(int1, int2) gehen (laut javasun!)
    da passiert aber nix, überhaupt nix. ich hab das ganze mal in eine klasse gepackt diese ist funktionsfähig und aufführbar. ihr müsst nur noch ein Textfile in den stdPath legen und referenzieren.vielleicht findet jemand mögliche fehler. hier der code:

    [java]

    import java.awt.;
    import java.awt.event.
    ;
    import javax.swing.;
    import javax.swing.event.
    ;

    import java.io.*;

    public class Test extends JFrame
    implements ActionListener{

    private JButton ButtonSelect = null;

    private JTextArea TextAreaDialogHelp = null;
    private JScrollPane ScrollPaneText = null;

    public Test (){

    super("Test");
    init();
    pack();
    setVisible(true);
    }

    public void init(){

    ButtonSelect = new JButton("Menüleiste");
    ButtonSelect.setMnemonic(KeyEvent.VK_M);
    ButtonSelect.addActionListener(this);

    TextAreaDialogHelp = new JTextArea(40,65);
    ScrollPaneText = new JScrollPane(TextAreaDialogHelp);

    JPanel panelButton = new JPanel();
    panelButton.add(ButtonSelect);

    ReadWrite();

    this.getContentPane().add(ScrollPaneText, BorderLayout.CENTER);
    this.getContentPane().add(panelButton, BorderLayout.SOUTH);
    }

    public void actionPerformed(ActionEvent event){

    if (event.getSource() == ButtonSelect) Select();
    }

    private void ReadWrite(){

    try{
    InputStream in = new FileInputStream("MyText.txt");
    int availableLength = in.available();
    byte[] totalBytes = new byte[availableLength];
    int bytedata = in.read(totalBytes);
    String text = new String(totalBytes);
    TextAreaDialogHelp.setText(text);

    }catch (IOException e){System.out.println("Error");}
    }

    private void Select() {

    TextAreaDialogHelp.select(0,100);
    }

    public static void main(String[] args){

    new Test();
    }
    }[/code]

    es gibt eine JTextArea in der der Text steht. auf knopfdruck will ich halt dann was selectieren. die listenerImplementierung für den button ist ok.please help..
    thx

    pain

    @Cegniz: Warum funktioniert das Syntaxhighlighting für den Code nicht mehr ???
    wärst du so lieb und das für diesen artikel zu setzen ? danke

    [ Dieser Beitrag wurde am 16.01.2003 um 12:19 Uhr von CengizS editiert. ]

    [ Dieser Beitrag wurde am 16.01.2003 um 13:24 Uhr von pain_md editiert. ]



  • [code type="Java"] musst Du schreiben ...



  • Zu deinem Problem: Die Doku sagt aber auch, dass die select-Methode nur aus Abwärtskompatibilitätsgründen noch vorhanden ist. Stattdessen empfiehlt sie die Nutzung von setCaretPosition und moveCaretPosition. Versuchs mal mit denen ... vielleicht klappts?



  • ich habe mittlerweile ein schlechtes gewissen wenn ich poste ohne die API gelesen zu haben ;-). hab ich auch versucht. das is wieder so ein shissen Focusproblem. jetz was zum lachen: wenn ich einen JMenuItem zum Button misbrauche (is lustig, kannste nämlich Strg+whatever mit machen) dann geht das.
    nehme ich einen normalen JButton keine change. ich werd hier noch zum rumpelheinzchen 😡 , naja vielleicht fällt dir noch was ein 🙄
    thx

    pain

    ps: danke fürs highlighting. das prob is einfach wenn ich auf "code" drücke kommt das ganze ohne java initialisierung. und ausn kopf wusst ichs grad nich.


Anmelden zum Antworten