1
public class ParserGUI extends javax.swing.JFrame {
public ParserGUI() {
        initComponents();
    }
private void initComponents() {
comText = new JTextArea();
internToggle = new javax.swing.JToggleButton();
comText = new javax.swing.JTextArea();
ComText.setColumns(20);
ComText.setEditable(false);
ComText.setRows(5); 
ComText.setLineWrap(true);
ComText.setWrapStyleWord(true);
ComText.setText(uids.toString()); // uids includes the UID's

internToggle.setText("Nur interne");
        internToggle.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                InternToggleActionPerformed(evt);
            }
        });

private void internToggleActionPerformed(ActionEvent evt) {
        System.out.println("Intern");
    if (externToggle.isSelected()) {
        externToggle.setSelected(false);
    }

    if (internToggle.isSelected()) {
        String[] person = comText.getText().split("; ");
        StringBuffer newPerson = new StringBuffer();
        for (String string : person) {
            if (string.matches("((?i)u)([0-9]{6})")) {
                newPerson.append(string + "; ");
            }
        }
        comText.setText(newPerson.toString());
        }
    }

public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        // <editor-fold defaultstate="collapsed"
        // desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase
         * /tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager
                    .getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(ParserGUI.class.getName()).log(
                    java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(ParserGUI.class.getName()).log(
                    java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(ParserGUI.class.getName()).log(
                    java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(ParserGUI.class.getName()).log(
                    java.util.logging.Level.SEVERE, null, ex);
        }
        // </editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new ParserGUI().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JTextArea comText;
    private javax.swing.JToggleButton internToggle;
    // End of variables declaration

JTextArea (comText)をクリックして自分を更新したいJToggleButton (internToggle)。しかし、ボタンをクリックしても何も変わりませんでした。

SO と Google で検索しましたが、私のプログラムではすべてのソリューションが機能しません。

プログラムがすべきこと:
私の TextArea には、さまざまな User-ID が多数含まれていますuids.toString()

例のコンテンツ:u100125; u100149; u100187; u100364; u110207; u110318; u111949; u112850; u114345; u117205; u118421; u119058; u123362; u128621; u143754; u147190; u149220; u149788; u149911; u160017; u160081; u161927; u162659; u163383; u165021; u165363; u165534; u165765; u166052; u166731; u166912; u200965; u201334; u201942; u202144; u202291; u202293; u202544; u202670; u202899; u202920; u202928; u202975; u203103; u203271; u203499; u203739; u203960; u204011; u204030; u204333; u204652; u205166; u205203; u205420; u205595; u206596; u206741; u207063; u207455; u207467; u207627; u207742; u207788; u207797; u208344; u208419; u208637; u208820; u209382; u209903; u210041; u210690; u210767; u210854; u210875; u212119; u213175; u213517; u213940; ue01545; ue03732; ue05728; ue06895; ue53655; ue54224; ue55155; ue55385; ue57760; ue58142;

ここで、トグル ボタンを使用して、ue-ID から u-ID を除外したいと考えています。

私の方法internToggleActionPerformedはうまくいきます。newPerson()すべての u-ID が含まれています。しかし、TextArea何もしません。を更新するにはどうすればよいTextAreaですか?

4

3 に答える 3

2

コード フラグメントを実行可能なアプリケーションにラップしました。 http://pastebin.com/S2A3drXkを参照してください。validate()/repaint()/pack() へのさまざまな呼び出しなしで、期待どおりに動作します。これを出発点として使用し、すべての追加コードを追加するまで、段階的に変更することをお勧めします。

免責事項: 私は Java の命名規則をよく知っています。私の意図は、OP と同じリスナーを使用することでした。OP に任せて、Java の命名規則とコーディング規則に慣れ、それらを適切に適用します。

于 2012-09-14T10:29:36.457 に答える
1

このチュートリアルを使用してください。

  1. 2つのトグルボタンに基づいてコンソールにテキストを印刷する小さなプログラムを作成します。
  2. 印刷物が表示されたら、テキスト領域を追加し、テキスト領域にもテキストを設定します。
  3. それも機能したら、正規表現の解析を追加します。
于 2012-09-14T10:17:43.307 に答える
1

終わった。

それは私のEclipseのせいでした。私の会社では、独自のプラグインを備えた Eclipse を使用しています。新しいバージョンは GIT を使用していますが、私の小さなプロジェクトは SVN で開発されており、プラグインに問題がありました。それで、私のGUIアプリケーションはすべて開始しましたが、その後フリーズしました。

とにかく、大きな助けをありがとう!

于 2012-09-18T13:21:53.663 に答える