trauergraf
Cadet 3rd Year
- Registriert
- Dez. 2014
- Beiträge
- 50
Hi, bin Anfänger und muss mich grad ein wenig in GUI Programmierung einarbeiten. Komme ganz gut voran und hab auch erfolgreich die erste Adapterklasse geschrieben und dem ganzen Funktionalität verliehen. Nun gibt mein Programm aber momentan nur über die Konsole die Meldungen aus, was sich jetzt ändern soll. Ich möchte dass die Ausgabe über eine MessageBox ausgegeben wird. In Musterlösungen stellte ich fest, dass die als Objekt erzeugt werden muss, allerdings nutzen die jeweils nie einen Konstruktor... Beim Erzeugen meiner Messagebox spuckt mir Eclipse aber "undefined constructor" aus. Habe versucht einen Konstruktor manuell zu schreiben, aber auch das hat irgendwie nicht geklappt. Kann mir jemand weiter helfen?
(Zeile 87 ist die Zeile mit Fehler)
Zur Funktionalität: Das Fenster hat eine Texteingabe, diese Texteingabe soll auf folgende Kriterien geprüft werden:
- .de am Ende
- "http (..)" oder "https://www." am Anfang
- Kein Leerzeichen
Hauptfenster:
AdapterKlasse:
(Zeile 87 ist die Zeile mit Fehler)
Zur Funktionalität: Das Fenster hat eine Texteingabe, diese Texteingabe soll auf folgende Kriterien geprüft werden:
- .de am Ende
- "http (..)" oder "https://www." am Anfang
- Kein Leerzeichen
Hauptfenster:
Code:
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
public class PruefFenster {
protected Shell shell;
private Text text;
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
PruefFenster window = new PruefFenster();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
/**
* Create contents of the window.
*/
protected void createContents() {
shell = new Shell();
shell.setSize(440, 160);
shell.setText("SWT Application");
shell.setLayout(new GridLayout(2, false));
Label lblInternetadresse = new Label(shell, SWT.NONE);
lblInternetadresse.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
lblInternetadresse.setText("Internetadresse:");
text = new Text(shell, SWT.BORDER);
GridData gd_text = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1);
gd_text.widthHint = 267;
text.setLayoutData(gd_text);
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
Button btnAdressePrfen = new Button(shell, SWT.NONE);
btnAdressePrfen.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
// HIER METHODE NOCHMAL ÜBERGEBEN!?!??!
adPruefen();
}
});
GridData gd_btnAdressePrfen = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);
gd_btnAdressePrfen.widthHint = 110;
btnAdressePrfen.setLayoutData(gd_btnAdressePrfen);
btnAdressePrfen.setText("Adresse pr\u00FCfen");
new Label(shell, SWT.NONE);
new Label(shell, SWT.NONE);
}
public void adPruefen(){
String ad = text.getText();
MessageBox b = new MessageBox(this, SWT.OK);
if(ad.endsWith(".de")){
System.out.println(".de-Prüfung OK!");}
else {
System.out.println(".de-Prüfung nicht OK!");
}
if(ad.startsWith("http://www.")||ad.startsWith("https://www.")){
System.out.println("www.-Prüfung OK!");
}else{
System.out.println("www.-Prüfung nicht OK!");
}
if(ad.contains(" ")){
System.out.println("Leerzeichen Prüfung nicht OK!");
}else{System.out.println("Kein Leerzeichen- Prüfung OK!");}
}
}
// // this ist das aktuelle Fenster, da Klasse von Shell erbt
//b.setText("Ergebnis der Prüfung");
//if (quersumme == 20) {
// b.setMessage("Eingabe ist gültig");
//} else {
// b.setMessage("Eingabe ungültig");
//}
//b.open();
AdapterKlasse:
Code:
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
public class PruefAdapter extends SelectionAdapter {
private PruefFenster fenster;
@Override
//Widget Methode
public void widgetSelected(SelectionEvent e) {
fenster.adPruefen();
super.widgetSelected(e);
}
// KONSTRUKTOR
public PruefAdapter(PruefFenster fenster) {
super();
this.fenster = fenster;
}
}
Zuletzt bearbeitet: