Relativt avstånd mellan komponenter i java

Här diskuteras programmering och utveckling
Användarvisningsbild
JeyPeyy
Inlägg: 768
Blev medlem: 06 aug 2008, 22:41
OS: Xubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Göteborg

Relativt avstånd mellan komponenter i java

Inlägg av JeyPeyy »

Jag sitter och proggar lite java nu och skulle vilja ha lite hjälp med en sak. Jag gör ett grafiskt program med JFrame och skulle vilja att avståndet mellan komponenterna blir relativt storkeken på fönstret. Jag vet inte om ni hängde med, men så här ser det ut:

Kod: Markera allt

public class HiLo extends JFrame implements ActionListener {
    ...
    ...
    ...
    public HiLo() {
        setLayout(new GridLayout(4, 1, getWidth()/140, getHeight()/53));
        ...
        ...
        ...
        getSize().addActionListener(this);
    }
    ...
    ...
    ...
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==getSize()){
            repaint();
        }
        ...
        ...
        ...
    }

}
Jag försöker alltså göra så att när man ändrar storlek på fönstret så ändras avståndet mellan komponenerna. Detta fungerar naturligtvis inte, men jag hoppas någon vet hur man kan göra =). Inte jätteviktigt, men kan vara bra att veta. Jag vet att java är ett skitspråk, men eftersom vi lär oss det i skolan får jag väl lära mig det. Efter studenten ska jag nog ta och lära mig c++ med gtk+ eller qt.
SoniC
Inlägg: 3
Blev medlem: 17 mar 2009, 18:42
OS: Ubuntu
Utgåva: 16.04 Xenial Xerus LTS

Re: Relativt avstånd mellan komponenter i java

Inlägg av SoniC »

Osäkert om jag förstått exakt vad du är ute efter. Men om det inte handlar om exakt relativitet så kan du kanske du kan titta närmare på BorderLayout.

//pseudo
jpanel.setlayout(new BorderLayout());
jpanel.add(myleftThingy, BorderLayout.WEST);
jpanel.add(rightsidecontrolpanel, BorderLayout.EAST);
...
Användarvisningsbild
JeyPeyy
Inlägg: 768
Blev medlem: 06 aug 2008, 22:41
OS: Xubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Göteborg

Re: Relativt avstånd mellan komponenter i java

Inlägg av JeyPeyy »

SoniC skrev:Osäkert om jag förstått exakt vad du är ute efter. Men om det inte handlar om exakt relativitet så kan du kanske du kan titta närmare på BorderLayout.

//pseudo
jpanel.setlayout(new BorderLayout());
jpanel.add(myleftThingy, BorderLayout.WEST);
jpanel.add(rightsidecontrolpanel, BorderLayout.EAST);
...
Nja det var inte riktigt det jag menade. Jag vill egentligen bara att "GridLayout(4, 1, getWidth()/140, getHeight()/53)" ska räknas om när man ändrar fönstrets storlek, men jag tänkte att det var lika bra att måla om hela fönstrets innehåll när fönstrets storlek ändras. Hur gör jag det? De två sista parametrarna i GridLayout är alltså längden mellan komponenterna.
Användarvisningsbild
JeyPeyy
Inlägg: 768
Blev medlem: 06 aug 2008, 22:41
OS: Xubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Göteborg

Re: Relativt avstånd mellan komponenter i java

Inlägg av JeyPeyy »

Är det någon som förstår vad jag vill åstadkomma? Säg till om ni inte förstår så ska jag försöka vara tydligare.
Användarvisningsbild
JeyPeyy
Inlägg: 768
Blev medlem: 06 aug 2008, 22:41
OS: Xubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Göteborg

Re: Relativt avstånd mellan komponenter i java

Inlägg av JeyPeyy »

bump?
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

Re: Relativt avstånd mellan komponenter i java

Inlägg av gasol »

Det räcker inte med att rita om fönsteret, det görs automatiskt när det byter storlek.
Det du måste göra är att ändra storleken på din Gridlayout...

Kod: Markera allt

public HiLo() {
     myGrid = new GridLayout(4, 1, getWidth()/140, getHeight()/53);
     setLayout(myGrid);
}

public void actionPerformed(ActionEvent e) {
        if(blaha is a resize event) {
           //är osäker på dom du vill ha H eller V här...
            myGrid.setHgap(getWidth()/140);
            myGrid.setVgap(getHeight()/53);
        }
}


The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
Skriv svar

Återgå till "Programmering och webbdesign"