On Thu, 16 Jan 2003 15:19:46 +0100, Ole wrote:
>> Hvad er det du prøver at lave ??? (så kan det måske være at vi kan give
>> bedre svar
)
>
> Det skal lige siges at jeg har selvlært alt så, der er muligvis mange
> ting der kan gøres smartere, men jeg har fået det til at virke så langt
> =)
>
> Jeg har oprettet
> 5 classes:
>
> GuiMain: indeholder "main" som bare laver en JFrame, og overlader så
> resten til Gui()
> Gui: Indeholde alt det grafiske.
> OpenConnection: Som laver forbindelse til en PostgreSQL-database.
> ResultsModel: som stiller informationen fra db'en op så den passer i en
> JTable.
> ActionMenu: Som styre alle actions..
>
> Det er så 2 Stringe i Gui(), jeg skal bruge i ActionMenu(), til at
> tilføje info til db'en...... Og da jeg allerede har lavet en "ActionMenu
> actionmenu = new ActionMenu();" i Gui, så jeg kan tilføje min knapper
> actions, kan jeg ikke lave en tilsvarende i ActionMenu, unden det hele
> går i selvsving......
En måde at løse dette problem på, er ved at give din ActionMenu en
reference til den Gui, som har oprettet den. Det gør du ved at lade din
ActionMenu tage en paramter som argument i sin konstruktør og så oprette
den som følger:
actionmenu = new ActionMenu(this);
Dvs. at du skal have en attribut oprettet i ActionMenu
Gui myGui;
denne sættes så i konstruktøren i ActionMenu
public ActionMenu( Gui parentGui ) {
myGui = parentGui;
}
Nu kan du så i din kode bruge myGui.xxx til at kalde metoder og tilgå
attributter i din Gui.
En lettere (med samtidig grimmere) løsning er at gøre de to strenge til
public static. Nu kan du så tilgå strengene direkte fra ActionMenu bare
ved at skrive
Gui.xxxx
Dette er dog ikke særlig pænt syntes jeg
. Men der er sikkert mange
andre løsninger.
--
Mikkel Bundgaard
Student at IT University of Copenhagen
Codito, Ergo Sum