2016-05-21 8 views
0

Ich arbeite an einem Projekt und ich bin es leid, schreiben .sets ständig, so dass ich ein paar Methoden machen würde, um den Code zu kürzen und mach es schneller. Ich benutze JButtons, JLabels und JTextFields, gibt es eine Möglichkeit, eine Methode zu schreiben, um die Fähigkeit zu haben .setInvisible (false); auf irgendwelchen von diesen? Oder muss ich für jeden Typ separate Methoden haben. Vielen Dank!Machen Sie eine Methode in der Lage, zwei verschiedene Arten als Parameter zu nehmen

Beispiel:

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

*** Edit: Nur um klar zu sein Ich versuche, es zu sehen, ob eine Möglichkeit, Java ist zu verstehen, die man nehmen im Gegensatz eingegeben, um alle drei zu benötigen. Ich versuche, einen Weg zu finden, dies zu tun, ohne zu tun, was ich habe hinzugefügt unter:

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

Nur über Schnittstellen und/oder Vererbung. Mit der angegebenen Syntax ist dies jedoch nicht möglich. – Turing85

+0

Okay, vielen Dank! – Synergy76

+1

Die Art, wie ich die Frage verstehe, scheint, dass Sie die Methode als 'private void siv (JComponent-Eingabe)' angeben müssen, da sowohl 'JButton',' JTextField' und 'JLabel' die' setVisible'-Methode von dieser Klasse erben –

Antwort

6

JButton, JTextField und JLabel vererben JComponent, die das Verfahren hat setVisible, so dass Sie eine Methode haben können, die dauern ein Array von JComponent und legt ihre Sichtbarkeiten fest.

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

Danke Dich sehr! Das ist toll! – Synergy76

+0

Aufbauend auf @ sleiman-jneidi's Antwort, wenn Sie eine Methode haben wollten, die _only_ die drei erwähnten Klassen akzeptiert, müssten Sie diese Methode überladen - schreiben Sie im Wesentlichen _three_ Methoden mit demselben Namen, wobei jeder einen Parameter vom richtigen Typ nimmt . Sie können dann den Code selbst in dreifacher Ausführung schreiben oder an eine private Methode delegieren, die eine JComponent verwendet. –