Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JAVA] JPanel uit andere class halen.

Pagina: 1
Acties:
  • 278 views

  • whoopy_
  • Registratie: November 2010
  • Laatst online: 09-10 08:13
Goedemiddag,

Ik ben bezig met het schrijven van een programma met een klein menutje. In dit menu zitten 2 menuitems, toevoegen van iets en een ander menuitem waarmee ik het overzicht wil geven. Deze heb ik beide in een andere class gestopt. Nu heb ik een class aangemaakt genaamd GUI die aangeroepen word als ik het programma debug en hierin maak het het menu aan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.event.*;

/**
 *
 * @author Wouter
 */
public class GUI extends JFrame
{
     private JMenuItem mi;
     private JMenuItem mi2;
    public GUI()
    {
        knopopenen ko = new knopopenen();
        setLayout(null);

        JMenuBar mb;
        JMenu menu;

        mb = new JMenuBar();
        menu = new JMenu("Opties");

        mb.add(menu);

        mi = new JMenuItem("Overzicht");
        mi2 = new JMenuItem("Toevoegen");
        menu.add(mi);
        menu.add(mi2);

        setJMenuBar(mb);

        mi.addActionListener(ko);
        mi2.addActionListener(ko);
        
    }
   class knopopenen implements ActionListener
   {
        public void actionPerformed( ActionEvent e )
        {
            if(e.getSource()== mi2)
            {
                
            }
            if(e.getSource() == mi)
            {
                
            }
        }
   }
    
}


nu is het dus de bedoeling dat ik met de 2 actionlisteners de juiste panels aanroep. (add.java & overzicht.add) Hoe werkt dit ?? Op mijn vorige topic heb ik kritiek gekregen dat er meer inzet gegeven moet worden voor er een topic word aangemaakt, maar hier kom ik simpelweg niet uit.

Bedankt voor de hulp alvast !

  • xzaz
  • Registratie: Augustus 2005
  • Laatst online: 24-11 17:05
Je 'haalt' geen JPanels uit een andere classe (tenzij static), je haalt object references vanuit andere 'classe'. Maar goed; heb je gekeken naar:
http://docs.oracle.com/ja...ing/components/panel.html

Schiet tussen de palen en je scoort!


  • whoopy_
  • Registratie: November 2010
  • Laatst online: 09-10 08:13
Ik heb deze code bij mijn class add:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.event.*;
/**
 *
 * @author Wouter
 */
public class Add extends JFrame
{
    //menu bar
   private JMenuBar menubar;
   private JMenu menu;
   private JMenuItem item;
    //paneel
   private JPanel paneel;
    //labels
   private JLabel artiestL;
   private JLabel titell;
   private JLabel voorraadl;
   //textboxen
   public JTextField artiestt;
   private JTextField titelt;
   private JTextField voorraadt;
   //knop
   private JButton addb;
   private JButton clear;
   
   //nieuwe instantie van winkel aanmaken
   private Winkel wkl = new Winkel();
   
   public Add()
   {  
       knopafhandelen ka = new knopafhandelen();
       setLayout(null);
       
       paneel = new JPanel();
       artiestL = new JLabel("Artiest");
       titell = new JLabel("Titel");
       voorraadl = new JLabel("Voorraad");
       addb = new JButton("Add");
       clear = new JButton("Clear");
       
       artiestL.setBounds(20,20,120,20);
       add(artiestL);
       titell.setBounds(20,50, 120, 20);
       add(titell);
       voorraadl.setBounds(100, 80, 120, 20);
       add(voorraadl);
       
       artiestt= new JTextField(80);
       titelt = new JTextField(30);
       voorraadt = new JTextField(30);
       
       artiestt.setBounds(100,20,200,20);
       add(artiestt);
       titelt.setBounds(100, 50, 200, 20);
       add(titelt);
       voorraadt.setBounds(180,80,120,20);
       add(voorraadt);
       
       addb.setBounds(140,110,80,20);
       clear.setBounds(240, 110, 80, 20);
       
       addb.addActionListener(ka);
       clear.addActionListener(ka);
       
       add(addb);
       add(clear);
   }
   class knopafhandelen implements ActionListener
   {
        public void actionPerformed( ActionEvent e )
        {
            if(e.getSource()== addb)
            {
            wkl.addCd(artiestt.getText(), titelt.getText(),Integer.parseInt(voorraadt.getText()));
            }
            if(e.getSource()==clear)
            {
                artiestt.setText("");
                titelt.setText("");                  
                voorraadt.setText("");
            }

        }
   }
}


Hoe hevel ik dit over dan ?

  • xzaz
  • Registratie: Augustus 2005
  • Laatst online: 24-11 17:05
Allereerst zal ik je aanraden, hoe irritant het ook is om toch even te gaan lezen over programmeren. Aan je vragen te zien heb je nog geen kaas gegeten van OOP. Verdiep je daar eens in, ga voor het slapen gewoon eens wat lezen.

Je probleem

1) Een classe die je 'Add' noemt is niet goed, Add is meestal een methode zoals, CustomJPanel.Add("NieuwePanel"); Waarbij "CustomJPanel" je classe is waar je een object van maakt en "Add" een methode die een paramter String nodig heeft voor de naam van de Panel oid.
2) Probeer Engels aan te houden bij je programmeren
3) Lees eens wat over OOP zoals al genoemd
4) Over dit probleem, je moet het antwoord zoeken in getters en setters, maar dan nog is dit niet mooi en zeker niet aan te raden.

Schiet tussen de palen en je scoort!


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Lees je ook even in over hoe de Java naming conventions in elkaar zitten: http://www.oracle.com/tec...n/codeconvtoc-136057.html

https://niels.nu


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 24-11 18:26

Creepy

Tactical Espionage Splatterer

Oftewel: je toont nog steeds te weinig eigen inzet en je bent zaken aan het doen die je nog niet snapt. Dat laatste is op zich niet erg maar je lijkt erg weinig moeite te doen om het toch te snappen en dat zien we hier dus liever niet. Als je niet kunt bedenken dat je iets van een get of set methode moet gaan gebruiken, of misschien zelfs wel een iets andere opzet dan wordt het tijd om er een Java boek bij te pakken en daar eens in te gaan duiken en met de basis te beginnen. Basiskennis is iets waarvan we hier verwachten dat je dat jezelf eigen probeert te maken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.