erkaMedlem sedan dec. 19996 522 inlägg Hej!
Sitter och ska börja med en uppgift till skolan där vi ska utveckla ett javabaserat gränssnitt där man ska kunna göra x antal saker mot en databas, det handlar om lägga in information, söka efter information, eller visa information. Låt oss säga att jag ska ha 6 olika menyalternativ i mitt program. Nu undrar jag vilket som är ett smidigt sätt att strukturera upp det på, vad jag kan använda för att inte få en enda stor hög med spaghettikod.
Jag skulle vilja ha varje av dessa sex alternativ i någon egen form av "kontroll" så att jag får ett litet mer strukturerat program, lättare att hålla koll på etc. Vad har jag för valmöjligheter?
tacksam
spangoMedlem sedan juni 20008 205 inlägg Som allmän regel brukar jag alltid låta de stora delarna av ett användargränssnitt kapslas in i en JPanel, som man sedan bestyckar med metoder för att få den att bete sig som man vill. Fördelen med det är att man sedan kan byta deras omgivning på ett smidigt sätt, t.ex. lägga dem i en JTabbedPane, låta dem växlas mellan i en CardLayout, använda någon enskild av dem i en applet osv. Då får man sina trevliga, strukturerade och lättanvända kontroller :)
erkaMedlem sedan dec. 19996 522 inlägg Tack, kan man "klistra" in en JPanel i en frame ? Tänkte ha en frame som själva applikationen och sedan dunka in de olika "komponenterna" i denna frame beroende på vad i menyn man valt.
spangoMedlem sedan juni 20008 205 inlägg Du menar, byta ut innehållet i framen under körning? Visst, inga problem. Finns några olika sätt att lösa det på, typ att använda en CardLayout i JFramens contentPane, eller så tar du en JTabbedPane.
erkaMedlem sedan dec. 19996 522 inlägg Ok tack, så då kan jag alltså ha flera olika Jpanels i en egen fil för varje så att säga, och sedan merga in dem i min frame som kör en cardlayout. Någon URL om hur man gå till väga för själva sättet man får in en annan panel i den aktuella framen?
SPiNMedlem sedan mars 20007 896 inlägg Ta en titt i API'et. JFrame.setContentPane( Container pane ) säger det. Du kan alltså med metoden setContentPane() ändra contentPane'n till valfri JPanel.
JFrame myFrame = new JFrame( "Fönster" );
...
JPanel myPanel = new JPanel();
...
myFrame.setContentPane( myPanel );
erkaMedlem sedan dec. 19996 522 inlägg Tack spin, Jo det där förstår jag, om jag förklarar lite utförligare kanske det är lättare att förstå vad jag menar, är lite snurrig för tillfället.
Jag har låt oss säga 4 java filer
-myAppliaction.java
main metod som kör en instans av myFrame
-myFrame.java
Min frame med en jMenuBar (2 menuitems) och en cardlayout
-myPanel1.java
En panel med dvs kontroller
-myPanel2.java
En annan panel med dvs kontroller
Vad jag vill är att när man klickar på något i menyn i framen ska dens actionslistener anropa tex en metod som klistrar in myPanel2.java eller myPanel1.java i framen
Detta kanske inte är ett smart sätt att lösa det hela på eller?
erkaMedlem sedan dec. 19996 522 inlägg Nu har jag löst det, det var ju enkelt men ibland är hjärnan inte riktigt med. :) Men frågan lyder, är det ett bra sätt att lösa det hela på?
spangoMedlem sedan juni 20008 205 inlägg Jag kan väl inte komma på något som känns principiellt fel. Sen kan det rent teoretiskt vara fel i sammanhanget, men det tror jag knappast att det är.
erkaMedlem sedan dec. 19996 522 inlägg Ok,tack för hjälpen. Finns det någon som gillar att göra UI's i java? Swing är inte direkt roligt he he ;)
LimeMedlem sedan sep. 2001961 inlägg GUI's är ALDRIG roligt, oavsett språk.