[Java/JBuilder] -> hoe een scherm openen mbv button?

Pagina: 1
Acties:

  • sus
  • Registratie: September 2000
  • Laatst online: 05:18

sus

is druk :+

Topicstarter
Ik moet voor school een programma schrijven, gekoppeld aan een database. Het moer American Football statistieken bijhouden. Ik heb een menu in gemaakt, waarmee ik een nieuw scherm (window) kan openen, om een nieuwe game aan te maken.

Op dat venster zit een knop, waarmee ik weer een nieuw venster moet openen.

Dus:
[File]
New game -> opent een venster -> hierop een knop die weer een venster opent

Om vanuit het menu het eerste venster te openen, gebruik ik deze code:

code:
1
2
3
4
5
6
7
8
9
  public void NewGame_Button_Players_actionPerformed(ActionEvent e) {
  NewGame_AddPlayer dlg = new NewGame_AddPlayer(this);
  Dimension dlgSize = dlg.getPreferredSize();
  Dimension frmSize = getSize();
  Point loc = getLocation();
  dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
  dlg.setModal(true);
  dlg.pack();
  dlg.show();


Vanuit het menu kan ik dat eerste scherm probleemloos (nouja, niet helemaal) openen. Als ik dan op die knop klik, moet er een tweede worden geopend. Ik heb dezelfde code gebruikt, en uiteraard de nieuwe naam er ingezet (in dit geval ipv NewGame_AddPlayer). Maar als ik hem dan wil compilen geeft JBuilder deze error:

code:
1
"FileNewGame.java": Error #: 300 : constructor NewGame_AddPlayer(afs2k3.FileNewGame) not found in class afs2k3.NewGame_AddPlayer at line 122, column 31


Ik snap er helemaal niks van, ik heb de code exact overgenomen. De source-code van de 2 schermen is gelijk aan elkaar, er staan alleen wat andere knoppen op. De basis is wel gelijk.

Heeft iemand een idee hoe ik dit kan oplossen? Ik moet het programma morgen inleveren, en zit dus nu helemaal vast.

Een ander probleem wat ik heb, is dat hij (als ik via het menu het eerste scherm open), dan opent hij het erg klein. Ik zie alleen de blauwe balk, met de [X] knop. Ik kan hem dan wel resizen. Ook hier heb ik al verschillende dingen bekeken, maar dat krijg ik ook niet opgelost.

Weet iemand een oplossing voor in ieder geval het eerste probleem ???

uiteraard heb ik al het nodige zoekwerk verricht op google en hier in de search. Toch heb ik niks gevonden.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Post de constructor van NewGame_AddPlayer..

en verder moet je geen underscores gebruiken bij object namen, maar gewoon:
NewGameAddPlayer. En verder is het handig als je het soort scherm onderdeel maakt van je object naam: NewGameAddPlayerDialog. Hierdoor zie je tenminste wat voor object het is.

  • sus
  • Registratie: September 2000
  • Laatst online: 05:18

sus

is druk :+

Topicstarter
Ik weet niet precies wat je bedoelt met de constructor, dus daarom maar ff de hele source van NewGame_AddPlayer:

Ik geloof dat dat dit is?
code:
1
2
3
4
5
6
7
class blaat{
   public blaat(index){

   }
   public blaat(){
   }
}


In ieder geval, hieronder de hele source, zo enorm groot is het nou ook weer niet.
tnx alvast :)

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
public class NewGame_AddPlayer extends JDialog {

  private JPanel panel1 = new JPanel();
  private BorderLayout borderLayout2 = new BorderLayout();
  private JButton AddPlayers_Button_Add = new JButton();
  private JButton AddPlayers_Button_Cancel = new JButton();
  private JButton AddPlayers_Button_Ok = new JButton();
  private JLabel jLabel1 = new JLabel();
  private JTextField PlayerNumber = new JTextField();
  private JLabel jLabel2 = new JLabel();
  private JTextField PlayerName = new JTextField();
  private JLabel jLabel3 = new JLabel();

  public NewGame_AddPlayer(Frame parent) {
    super(parent);
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    AddPlayers_Button_Add.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        AddPlayers_Button_Add_actionPerformed(e);
      }
    });
    panel1.add(AddPlayers_Button_Add, null);
    panel1.add(AddPlayers_Button_Cancel, null);
    panel1.add(AddPlayers_Button_Ok, null);
    panel1.add(jLabel1, null);
    panel1.add(PlayerNumber, null);
    panel1.add(PlayerName, null);
    panel1.add(jLabel2, null);
    panel1.add(jLabel3, null);
    //imageLabel.setIcon(new ImageIcon(Frame1_AboutBox.class.getResource("[Your Image]")));
    this.setTitle("Add players to the game");
    this.getContentPane().setLayout(borderLayout2);
    panel1.setLayout(null);
    jLabel1.setText("Number:");
    jLabel2.setText("Name:");
    jLabel3.setText("To edit a player, fill in his number and name again");
    jLabel1.setBounds(new Rectangle(20, 35, 60, 17));
    jLabel2.setBounds(new Rectangle(20, 70, 60, 17));
    jLabel3.setBounds(new Rectangle(20, 105, 305, 19));
    PlayerNumber.setBounds(new Rectangle(73, 32, 40, 21));
    PlayerName.setBounds(new Rectangle(73, 67, 220, 21));
    AddPlayers_Button_Add.setText("Add");
    AddPlayers_Button_Cancel.setText("Cancel");
    AddPlayers_Button_Ok.setText("Ok");
    AddPlayers_Button_Add.setBounds(new Rectangle(20, 140, 80, 27));
    AddPlayers_Button_Cancel.setBounds(new Rectangle(125, 140, 80, 27));
    AddPlayers_Button_Ok.setBounds(new Rectangle(230, 140, 80, 27));


    this.getContentPane().add(panel1, BorderLayout.CENTER);
    setResizable(true);
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      cancel();
    }
    super.processWindowEvent(e);
  }
  //Close the dialog
  void cancel() {
    dispose();
  }

  void AddPlayers_Button_Add_actionPerformed(ActionEvent e) {

  }

}



En inderdaad, de underscores weglaten zou inderdaad makkelijker zijn, maar dat is nu te kort dag. In een ander project doe ik dit inmiddels wel. Leest inderdaad een stuk makkelijker :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik ga je niet alles voordoen, maar ga je alleen helpen om je probleem te vinden.

JBuilder zegt dat hij de constructor voor jouw NewGame_AddPlayer niet kan vinden. Wat kan hier de oorzaak van zijn?

-heeft hij geen toegang tot de constructor omdat het accessnivo van de constructor niet goed staat?

-bestaat er geen constructor die voldoet aan jouw parameter wensen.
(bepaal de signature van de constructor die jij nodig hebt, en bepaal de signature van de constructor die er nu is)

[ Voor 18% gewijzigd door Alarmnummer op 09-01-2003 16:31 ]