2016-05-21 9 views
0

私はプロジェクトに取り組んでいます。私は絶えず.setsを書くのに疲れているので、コードを簡略化するためのいくつかのメソッドを作成しました。速くする。私はJButtons、JLabels、およびJTextFieldsを使用していますが、.setInvisible(false)を持つメソッドを書く方法があります。これらのいずれかで?あるいは、それぞれのタイプごとに別々のメソッドを持たなければならないのですか?ありがとうございました!メソッドは2つの異なる型をパラメータとして取ることができるようにする

例:

public void siv((JButton || JLabel || JTextField) input) { 
input.setVisible(false); 
} 

***編集: はちょうど私は、Javaがすべての3つを必要とするとは対照的に、入力されたものを取るように理解できる方法があるかどうかを確認しようとしている明確にすること。あなたが取るメソッドを持つことができるので、

private void siv(JButton input, JTextField input2, JLabel input3) { 
    input.setVisible(false); 
    input2.setVisible(false); 
    input3.setVisible(false); 
} 
+0

インターフェイスおよび/または継承によってのみ。ただし、指定された構文では不可能です。 – Turing85

+0

さて、どうもありがとう! – Synergy76

+1

私が質問を理解する方法は、 'JButton'、' JTextField'と 'JLabel'の両方がそのクラスの' setVisible'メソッドを継承するので、メソッドを 'private void siv(JComponent input)'として指定する必要があるようです。 –

答えて

6

JButtonJTextField、および方法setVisibleを持ってJComponentからJLabel継承:私は、私は下に追加したものを実行せずにこれを行う方法を見つけようとしていますJComponentの配列を持ち、可視性を設定します。

public void setVisibility(boolean visibility, JComponent... components) { 
    for(JComponent component: components){ 
    component.setVisible(visibility); 
    } 
} 
+1

あなたは非常に!これは素晴らしい! – Synergy76

+0

@ sleiman-jneidiの答えに基づいて、あなたが言及した3つのクラスを_only_で受け入れるメソッドを用意したいなら、そのメソッドをオーバーロードする必要があります - 基本的に同じ名前の_three_メソッドを記述し、 。コード自体を三重に書くか、JComponentをとるプライベートメソッドにデリゲートすることができます。 –

関連する問題