Avatar billede torlan Nybegynder
06. december 2004 - 15:30 Der er 3 kommentarer og
1 løsning

Menu skærm billede i applet.

Hej derude :-)

Vi har lavet noget kode der fungerer, så computeren formår at spille enten Kryds og Bolle eller Kalaha - afhængig af hvilken main metode der kaldes.

Vi ville gerne have mulighed for at vælge mellem de to spil på et skærm billede. Der skal altså laves noget om.

Helt overordnet skal vi jo "ombryde" vores main metoder til noget med init eller paint...

Vi har ikke kunne finde hjælp på vores niveau på nettet... Hjælp!

Vores program(mer) består af en abstract klasse position og to andre klasser med regler for det aktuelle spil.

Altså:

1: Hvordan får vi placeret knapperne på vores forreste skærmbillede - således at "cancel" sidder i nederste højre hjørne mv.

2: Jeg er lidt fovvirede over hele det her awt og swing værk - vi vil gerne lave det som en applet, men hvis det er unødigt kompliceret så skal det ikke gøres sådan.

Venligst

torlan
Avatar billede torlan Nybegynder
06. december 2004 - 15:41 #1
Vores to programmer har en abstract klasse Position til fælles, men hver deres main metode, de kan derfor i sagens natur ikke begge køre samtidigt.

Vi ville gerne have mulighed for at presentere et skærmbillede til brugeren, hvor man kan vælge hvilket spile man vil spille, læse reglerne for de to spil eller sborte programmet.

Det er i forbindelse med et project på datalogi studiet.
Avatar billede _carsten Nybegynder
06. december 2004 - 16:45 #2
Det er ikke nødvendigvis kompliceret - det afgør i faktisk selv !!

I skal bare extende JApplet/Applet istedet for JFrame/Frame og override init()
Avatar billede _carsten Nybegynder
06. december 2004 - 17:13 #3
Et lille eksempel på hvordan eventuelt kunne gøres

html-delen

<HTML>
<HEAD>
  <TITLE>Spil</TITLE>
</HEAD>
<BODY>
<P>
<APPLET codebase="." code="Spil.class" width=400 height=400></APPLET>
</P>
</BODY>
</HTML>


//Java-delen

import java.awt.CardLayout;
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Spil extends javax.swing.JApplet {
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();                   
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
   
    private void initComponents() {
        bar = new javax.swing.JMenuBar();
        menu1 = new javax.swing.JMenu();
        item1 = new javax.swing.JMenuItem();
        item2 = new javax.swing.JMenuItem();
        item3 = new javax.swing.JMenuItem();
        item4 = new javax.swing.JMenuItem();

        kal = new Kalaha();
        kob = new KrydsOgBolle();
        kRegler = new K_Regler();
        kobRegler = new KOB_Regler();
        getContentPane().add(kal, "card1");
        getContentPane().add(kob, "card2");
        getContentPane().add(kRegler, "card3");
        getContentPane().add(kobRegler, "card4");

        getContentPane().setLayout(new java.awt.CardLayout());

        menu1.setText("Spil");
        item1.setText("Kalaha");
        item1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                takeAction(evt);
            }
        });

        menu1.add(item1);

        item2.setText("Kryds og bolle");
        item2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                takeAction(evt);
            }
        });

        menu1.add(item2);

        item3.setText("Regler Kalaha");
        item3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                takeAction(evt);
            }
        });

        menu1.add(item3);

        item4.setText("Regler Kryds og Bolle");
        item4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                takeAction(evt);
            }
        });

        menu1.add(item4);

        bar.add(menu1);

        setJMenuBar(bar);

    }

    private void takeAction(java.awt.event.ActionEvent evt) {
        CardLayout cl = (CardLayout) getContentPane().getLayout();
        if(evt.getSource() == item1){
            cl.show( getContentPane(), "card1");
        }
        else if(evt.getSource() == item2){
            cl.show( getContentPane(), "card2");
        }
        else if(evt.getSource() == item3){
            cl.show( getContentPane(), "card3");
        }
        else if(evt.getSource() == item4){
            cl.show( getContentPane(), "card4");
        }
    }
   
    private javax.swing.JMenuBar bar;
    private javax.swing.JMenuItem item1;
    private javax.swing.JMenuItem item2;
    private javax.swing.JMenuItem item3;
    private javax.swing.JMenuItem item4;
    private javax.swing.JMenu menu1; 
    private Kalaha kal;
    private KrydsOgBolle kob;
    private K_Regler kRegler;
    private KOB_Regler kobRegler;
}




// HER ER KLASSERNE SOM INDEHOLDER JERES SPIL OG REGLER

class Kalaha extends JPanel{
    public Kalaha(){
        setBackground(Color.BLUE);
        add(new JLabel("KALAHA"));
    }
}

class KrydsOgBolle extends JPanel{
    public KrydsOgBolle(){
        setBackground(Color.YELLOW);
        add(new JLabel("Kryds Og Bolle"));
    }
}

class K_Regler extends JPanel{
    public K_Regler(){
        setBackground(Color.GREEN);
        add(new JLabel("Kalaha Regler"));
    }
}

class KOB_Regler extends JPanel{
    public KOB_Regler(){
        setBackground(Color.RED);
        add(new JLabel("Kryds og Bolle Regler"));
    }
}
Avatar billede torlan Nybegynder
07. december 2004 - 09:27 #4
Super - Mange mange tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester