Avatar billede gonnemand Nybegynder
25. november 2007 - 00:52 Der er 2 kommentarer

Hjælp til SWT GUI

Hej, jeg forsøger at lave en applikation, hvor der ved program start, kun skal vises "Login", efter login (hvis korrekt user/pass), skal der selvfølgelig vises noget andet i program vinduet.

Jeg bruger Eclipse med Designer plug-in programmet.
Jeg lavede først en hovedGUI, hvori jeg satte en Composite, som jeg linkede til Login.class
Denne Login.class indeholde så Composite hvor der er lavet et par tekst felter til Bruger navn og Password samt en "Login" knap.

Problemet er så, at når jeg kører programmet, er vinduet tomt, og man kan ikke se Login muligheden. Jeg har prøvet frem og tilbage med forskellige ting, men kan bare ikke få vis Login.

HovedGUI vinduet:
################################################################
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import com.swtdesigner.SWTResourceManager;

public class GUI
{
    protected Shell shell;

    public static void main(String[] args) {
        try {
            GUI window = new GUI();
            window.open();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void open()
    {
        final Display display = Display.getDefault();
        createContents();
        shell.open();
        shell.layout();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
    }

    protected void createContents()
    {
        shell = new Shell();
        shell.setImage(SWTResourceManager.getImage(GUI.class, "movie_icon.gif"));
        shell.setSize(500, 375);
        shell.setText("Login");

        final Login login = new Login(shell, SWT.NONE);
        login.setBounds(211, 129, 64, 64);
    }
}

################################################################

Login vinduet:
################################################################

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;

public class Login extends Composite
{
    private Text text_1;
    private Text text;

    public Login(Composite parent, int style) {
        super(parent, style);
        setRedraw(true);

        final Button loginButton = new Button(this, SWT.NONE);
        loginButton.setText("Login");
        loginButton.setBounds(354, 322, 48, 25);

        text = new Text(this, SWT.BORDER);
        text.setBounds(258, 106, 80, 25);

        text_1 = new Text(this, SWT.BORDER);
        text_1.setBounds(258, 137, 80, 25);

        final Label brugerNavnLabel = new Label(this, SWT.NONE);
        brugerNavnLabel.setText("Bruger navn:");
        brugerNavnLabel.setBounds(180, 110, 74, 15);

        final Label passwordLabel = new Label(this, SWT.NONE);
        passwordLabel.setText("Password:");
        passwordLabel.setBounds(195, 140, 60, 15);
    }

    public void dispose()
    {
        super.dispose();
    }

    protected void checkSubclass() {
        // Disable the check that prevents subclassing of SWT components
    }
}
################################################################
Avatar billede gonnemand Nybegynder
25. november 2007 - 01:15 #1
ARGH.... det er fordi jeg ikke laved Compositeten stor nok, til at den kunne vise indeholdet af Login.class. Ja, i må godt kalde mig fjols.

Men nu virker det i det mindste :-)

Men hvordan skifter man så mellem forskellige Compositter (Children/børn) korrekt. F.eks. hvis login er korrekt, så skal en anden Composit vises, og hele vinduet laves større.

Pfh tak :-)
Avatar billede gonnemand Nybegynder
25. november 2007 - 23:29 #2
Der er noget der siger mig, at jeg blander Composite og Shell... og må indrømme at jeg ikke aner en dyt om hvad jeg laver.

Egentlig burde jeg nok bare lave to uafhængige GUI's, en til Login og en til selve programmet. men vil bare gerne lære at gøre det på en anden måde (måske mere professionelt).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester