0

NetBeans次のコードで、jSlider ChangeEventを使用して作成しました。

public class Slider extends javax.swing.JFrame {
    public Slider() {
         initComponents;
         field.getText();
         String fieldVal = field.getText();
         jtextField1.setText(fieldVal):
    }

    public JTextField getField() {
         return field;
    }

    public void setField(JTextField field) {
          this.field = field;
    }

    private void sliderStateChanged(javax.swing.event.ChangeEvent evt) { 
          int value = slider.getValue();
          String val = value + "";
          field.setText(val + "%");
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new Slider().setVisible(true);
        }
    });
    }
}

だから、私はJTextFieldjSpinner から値を受け取っている (フィールド) を持っています。すべてが正常に機能しますが、「val」を取得して、それを使用していくつかの計算を行いたいと考えています。

しかし、プライベートメソッドにあるため、それを行うことはできません。メソッドパラメーターを使用して公開しようとしましたRefactor -> Changeが、次の警告が表示されます:テキストの読み取り専用ブロックはリファクタリングできません。動作しません。

また、ゲッターとセッターを作成しようとしましたが、まだ機能していません。私が望むのは、その値を取ることだけです。JTextField (フィールド)から直接取得することもできますが、「%」も入れたいので計算できません... 誰かアイデアを教えてください。何か間違っていることはわかっていますが、どこが間違っているのかわかりません。または、他の方法でテキスト フィールドに「%」を入力する可能性はありますか? 助けが必要です、ありがとう!

よろしく、 イウリア

4

4 に答える 4

0

私が理解していることから、String val をローカル変数ではなくスコープ外のグローバル変数にして、それを操作することはできませんか?

于 2014-09-04T12:05:28.237 に答える
0

一時的な解決策は次のとおりです。

制限領域を変更する場合は、コードをコピーして新しい.javaファイルに貼り付けて編集します。

値のみの場合は、パブリック変数を作成して値を割り当てJSliderます。

于 2014-09-04T12:06:17.350 に答える
0

編集した質問から、必要なのは、 %が追加されたスライダーの値を表示するテキスト ボックスだけであることがわかります。

これを示すコード例を次に示します。 https://gist.github.com/anonymous/96e898ec41cd2ed0f821

ファイル名NewJFrame.javaを作成し、コードをコピーしてペストし、実行して結果を確認します。

あなたのコードによると、テキストフィールドに何か問題があると思います。初期化されていない可能性があります。コード全体を共有していただければ、バグを見つけることができます。

于 2014-09-04T12:06:19.013 に答える