0

次の例に基づいています。

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

public class ExempleJFrame extends JFrame {

    public ExempleJFrame() {
        super("JFrame example");
        setLocation(50, 50);
        setSize(200, 200);
        getContentPane().add(new JLabel("This is a text label!", SwingConstants.CENTER));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        ExempleJFrame frame = new ExempleJFrame();
        frame.setVisible(true);
    }

}

メンバー メソッドを呼び出していることをより明確にする方法はありますか (setLocation()およびを参照setSize())。

this.setLocation()宇宙からのものではなく、メンバーメソッドを呼び出すことを明示するために、の行で何かを探しています。

4

3 に答える 3

2

Eclipse を使用している場合は、保存アクション (追加の保存アクション -> メンバー アクセス -> メソッド アクセスに「this」修飾子を使用) を設定できます。これは、保存時に自動的に変換setLocationthis.setlocationれます。

個人的には、プレフィックスのないメソッド呼び出しはどちらかしかできないため、特に便利だとは思いません

  • 静的メソッド呼び出し (Eclipse では斜体になります)
  • このメンバーの呼び出し
  • スーパーメンバーコール

実行時のディスパッチのため、最後の 2 つを区別する必要はめったにありません。

于 2012-10-26T13:25:48.823 に答える
1

継承よりも構成を優先することをお勧めします。継承ではなく、クラス内のメンバーを宣言しますJFrameJFrame yourFrame;次に、JFrame メソッドを次のように自然に呼び出します。

yourFrame.someMethod();

ps: EDT からGUI メソッドを呼び出します。

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            yourFrame = new JFrame("JFrame example");
            initFrame();
            yourFrame.setVisible(true);
        }
    }
}
于 2012-10-26T13:15:49.673 に答える
0

他の人がコメントで言ったように、使用できますthis.setwatever()。通常、使用するのは良い習慣と考えられていますthis.membervariableが、 this.method(). を使用するコードに実際に遭遇したことはありませんが、完全に正常に機能します。

于 2012-10-26T13:15:34.817 に答える