01. november 2002 - 14:31
Der er
16 kommentarer og 1 løsning
Indsættelse af et JPanel (nullLayout) i en anden panel(BorderLay)
Jeg har et problem med at få sat et JPanel ind i et andet JPanel. Problemet opstår når jeg ønsker at gemme de to forskellige panels i forskellige filer! MainDriveren: import java.awt.*; import java.awt.event.*; import javax.swing.*; import GUIMain; class GUIMaindriver { public static void main (String [] args) throws Exception { GUIMain frame = new GUIMain("Sky-Light A/S"); frame.setSize(800, 600); frame.setVisible(true); } } mainPanelen: import java.awt.*; import java.awt.event.*; import javax.swing.*; import GUIValg; public class GUIMain extends JFrame { JPanel mainPanel, valgPanel; JButton JTButton; public GUIMain (String title) { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle(title); setLocation(100, 100); JTButton = new JButton("Jesper"); //test mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); GUIValg valgPanel = new GUIValg(); mainPanel.add(JTButton, BorderLayout.CENTER); mainPanel.add(valgPanel, BorderLayout.CENTER); setContentPane(mainPanel); valgPanel.setVisible(true); } } og valgPanelen: import java.awt.*; import java.awt.event.*; import javax.swing.*; class GUIValg extends JPanel { private JPanel valgPanel; private JButton vareButton, leverandoerButton, ordreButton, emptyButton, opsaetningButton; public GUIValg() { vareButton = new JButton("Varer"); leverandoerButton = new JButton("Leverandør"); ordreButton = new JButton("Ordre"); emptyButton = new JButton("Empty"); opsaetningButton = new JButton("Opsætning"); vareButton.setToolTipText ("Viser samtlige varer på reservedelslageret"); leverandoerButton.setToolTipText ("Viser samtlige leverandører"); ordreButton.setToolTipText ("Viser samtlige ordrer"); emptyButton.setToolTipText (""); opsaetningButton.setToolTipText ("Programmets opsætning"); valgPanel = new JPanel(); valgPanel.setLayout(null); //valgPanel.setBorder(BorderFactory.createTitledBorder("")); valgPanel.setSize(100, 100); valgPanel.add(vareButton); valgPanel.add(leverandoerButton); valgPanel.add(ordreButton); valgPanel.add(emptyButton); valgPanel.add(opsaetningButton); Insets insets = valgPanel.getInsets(); vareButton.setBounds (10 + insets.left, 10 + insets.top, 40, 40); leverandoerButton.setBounds (60 + insets.left, 10 + insets.top, 40, 40); ordreButton.setBounds (110 + insets.left, 10 + insets.top, 40, 40); emptyButton.setBounds (160 + insets.left, 10 + insets.top, 40, 40); opsaetningButton.setBounds (210 + insets.left, 10 + insets.top, 40, 40); } } Håber nogen kan give et råd! På forhånd tak
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
01. november 2002 - 14:33
#1
hvad er fejlen?
01. november 2002 - 14:34
#2
men det kan ikke vara godt att gøra såhær mainPanel.add(JTButton, BorderLayout.CENTER); mainPanel.add(valgPanel, BorderLayout.CENTER); du placerar båda komponenter i center, ikke godt
01. november 2002 - 14:36
#3
Nej det ved jeg, men hvis man fjerner JTButton(test) vil den ikke vise ValgPanel i framen(maindriveren)! Jeg vil gerne have valgPanel vist, og det kan jeg ikke!
01. november 2002 - 14:41
#4
hvis du skriver valgPanel.setBackground(Color.red); i GUIMain.java så ser du att det faktiskt virker, men det er fejl på valgPanel
01. november 2002 - 14:43
#5
jag ser ikke att du add:ar några komponenter i GUIValg.java du bara skaper dem...
01. november 2002 - 14:44
#6
kan det vara fejlet? du addar ikke valgPanel efter att du add:at alle komponenter till den panel i GUIValg.java?
01. november 2002 - 14:47
#7
hvis jag skrev: setLayout(new BorderLayout()); add(valgPanel, BorderLayout.CENTER); i GUIValg.java fick jag se 5 knapper, og det er bedre æn inget =)
01. november 2002 - 14:48
#8
Jeg tror ikke jeg er helt med i hvad du mener!?! I GUIValg opretter jeg et panel, og add'er de forskellige JButtons Så burde panelet vel være i orden?
01. november 2002 - 14:51
#9
GUIValg ER en panel, och i GUIValg skapar du en annan panel och placerar alle knapper och annat i den panel. men du lægger inte den panel:en i GUIValg (som jag skrivit ovan) hvis du add:ar den inre panel (valgPanel) till GUIValg så kommer du att se den =)
01. november 2002 - 14:57
#10
Hvis jeg gør som du siger, så får jeg en Nullpointereception når jeg kører maindriveren...
01. november 2002 - 15:01
#11
huh.... æven hvis du lægger den længst ner i koden, efter: emptyButton.setBounds (160 + insets.left, 10 + insets.top, 40, 40); opsaetningButton.setBounds (210 + insets.left, 10 + insets.top, 40, 40); det virker fullkomligt godt hos mig, men knapperna er før små med de bounds... =)
01. november 2002 - 15:02
#12
hvis du får nullpointerexception får du ett extra fejlmeddelelse som siger hvor ditt null-verdi er... hvad siger det?
01. november 2002 - 15:03
#13
java.lang.NullPointerException at java.awt.Container.addImpl(Container.java:345) at java.awt.Container.add(Container.java:267) at GUIValg.<init>(GUIValg.java:14) at GUIMain.<init>(GUIMain.java:22) at GUIMaindriver.main(GUIMaindriver.java:11)
01. november 2002 - 15:07
#14
hvis min GUIValg.java ser sådan her ut ---------------------------------------------------------------- import java.awt.*; import java.awt.event.*; import javax.swing.*; class GUIValg extends JPanel { private JPanel valgPanel; private JButton vareButton, leverandoerButton, ordreButton, emptyButton, opsaetningButton; public GUIValg() { setLayout(new BorderLayout()); vareButton = new JButton("Varer"); leverandoerButton = new JButton("Leverandør"); ordreButton = new JButton("Ordre"); emptyButton = new JButton("Empty"); opsaetningButton = new JButton("Opsætning"); vareButton.setToolTipText ("Viser samtlige varer på reservedelslageret"); leverandoerButton.setToolTipText ("Viser samtlige leverandører"); ordreButton.setToolTipText ("Viser samtlige ordrer"); emptyButton.setToolTipText (""); opsaetningButton.setToolTipText ("Programmets opsætning"); valgPanel = new JPanel(); valgPanel.setLayout(null); valgPanel.setBorder(BorderFactory.createTitledBorder("yeah")); valgPanel.setSize(100, 100); valgPanel.add(vareButton); valgPanel.add(leverandoerButton); valgPanel.add(ordreButton); valgPanel.add(emptyButton); valgPanel.add(opsaetningButton); Insets insets = valgPanel.getInsets(); vareButton.setBounds (10 + insets.left, 10 + insets.top, 140, 40); leverandoerButton.setBounds (160 + insets.left, 10 + insets.top, 140, 40); ordreButton.setBounds (310 + insets.left, 10 + insets.top, 140, 40); emptyButton.setBounds (460 + insets.left, 10 + insets.top, 140, 40); opsaetningButton.setBounds (610 + insets.left, 10 + insets.top, 140, 40); add(valgPanel, BorderLayout.CENTER); } } ---------------------------------------------------------------- virker det utmærkt....... testa det...
01. november 2002 - 15:12
#15
Damn, fedt, Jeg siger mange tak for hjælpen! Jeg går på en EDB skole, hvor lærene ikke kan hjælpe!?!, så det er godt at få hjælp herinde! Mange tak di8leva
01. november 2002 - 15:14
#16
my pleasure =)
01. november 2002 - 16:14
#17
Kan man kun indsætte et panel i et andet panel, hvis man sætter det i CENTER?
Kurser inden for grundlæggende programmering