Avatar billede seattaken Nybegynder
02. december 2004 - 14:54 Der er 1 løsning

Udskriv enten screenshot eller udvalgte dele af programmert

Hej Eksperter

Jeg skal have en udskriv knap til at udskrive nogle dele af et program. Her kommer lige noget kode og så udpeger jeg hvilken knap der er udskriv knappen - det jeg mangler er en måde at gøre det på. Ville gerne hvis det var sådan at når man trykker på knappen så dukker der et billede op af hvad man vil udskrive og derefter kommer siden med vælg printer o.l.

package Hjaelpetraener.guiKomponent;

import java.awt.*;
import java.awt.event.*;

import java.util.ArrayList;

import javax.swing.*;
import javax.swing.border.*;

import Hjaelpetraener.modelKomponent.Spiller;


//Panel under holdopstilling

/**
* @author nwa
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/

public class HoldopstillingBGF extends JPanel {
    final static int BANE_BREDDE = 400;

    final static int BANE_HOEJDE = 550;

    final static int KNAP_STOERRELSE = 40;

    final static int ASCII_VAERDI = 48;

    static String[] menuItems = { "Åbn", "Gem", "Udskriv",
            "Redigér spillerliste" };

    int[][] pladser = new int[20][3];

    int[][] forsvarPladser = new int[12][3];

    int[][] midtbanePladser = new int[12][3];

    int[][] angrebPladser = new int[12][3];

    SpillerKnap[] spillerKnapper = new SpillerKnap[11];

    public HoldopstillingBGF(Dimension contentDimension) {

        for (int i = 0; i < 11; i++) {
            spillerKnapper[i] = new SpillerKnap();
        }

        //billede af fodboldbanen
        String[] formationsNavne = { "4-4-2", "4-5-1", "4-3-3", "4-2-4",
                "4-1-5", "3-5-2", "3-4-3", "3-3-4", "3-2-5", "3-1-6", "2-7-1" };

        JComboBox formationer = new JComboBox(formationsNavne);
        formationer.setSelectedIndex(0);
        formationer.setBorder(new TitledBorder(new EtchedBorder(),
                "Vælg formation"));
        formationer.setToolTipText("Vælg formation her");
        formationer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

        updateBane(formationsNavne[formationer.getSelectedIndex()]);
        updatePanel();

        //målmand

        BanePanel bane = new BanePanel("images/Soccer.jpg");
        bane.setLayout(null);
        for (int i = 0; i < spillerKnapper.length; i++) {
            bane.add(spillerKnapper[i]);
        }

        ActionListener comboListener = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JComboBox cb = (JComboBox) e.getSource();
                String formationNavn = (String) cb.getSelectedItem();
                updateBane(formationNavn);
                updatePanel();
            }
        };

        formationer.addActionListener(comboListener);

        //Venstre panel
        JPanel Left = new JPanel();
        Left.setLayout(null);
        Left.add(formationer);
        formationer.setBounds(0, 0, BANE_BREDDE, 50);
        Left.add(bane);
        bane.setBounds(0, 60, BANE_BREDDE, BANE_HOEJDE);

        //Dele til højre panel
        //Målmænd
        JPanel goalKeeper = new JPanel();
        goalKeeper.setBorder(new TitledBorder(new EtchedBorder(), "Målmænd"));
        goalKeeper.add(new JScrollPane(new JTextArea("Valgte målmænd", 6, 34)));

        //Forsvarsspillere
        JPanel defencePlayer = new JPanel();
        defencePlayer
                .setBorder(new TitledBorder(new EtchedBorder(), "Forsvar"));
        defencePlayer.add(new JScrollPane(new JTextArea(
                "Valgte forsvarsspillere", 6, 34)));

        //Midtbanespillere
        JPanel centerPlayer = new JPanel();
        centerPlayer
                .setBorder(new TitledBorder(new EtchedBorder(), "Midtbane"));
        centerPlayer.add(new JScrollPane(new JTextArea(
                "Valgte midtbanespillere", 6, 34)));

        //Angrebsspillere
        JPanel strikerPlayer = new JPanel();
        strikerPlayer.setBorder(new TitledBorder(new EtchedBorder(), "Angreb"));
        strikerPlayer.add(new JScrollPane(new JTextArea(
                "Valgte angrebsspillere", 6, 34)));

        JPanel spillere = new JPanel();
        spillere.setLayout(new GridLayout(4, 1, 10, 10));
        spillere
                .setBorder(new TitledBorder(new EtchedBorder(), "Spillerliste"));
        //spillere.setBackground(Color.BLUE);
        spillere.add(goalKeeper);
        spillere.add(defencePlayer);
        spillere.add(centerPlayer);
        spillere.add(strikerPlayer);

        //Højre panel
        JPanel Right = new JPanel();
        Right.setLayout(new GridLayout(1, 1));
        Right.add(spillere);

        //Hele panelet
        JPanel content = new JPanel();
        content.setPreferredSize(contentDimension);
        content.setLayout(new GridLayout(1, 2));
        content.add(Left);
        content.add(Right);

        add(content);
    }

    private void updateBane(String formationNavn) {
        int antalForsvar = 0;
        int antalMidtbane = 0;
        int antalAngreb = 0;

        antalForsvar = formationNavn.charAt(0) - ASCII_VAERDI;
        antalMidtbane = formationNavn.charAt(2) - ASCII_VAERDI;
        antalAngreb = formationNavn.charAt(4) - ASCII_VAERDI;

        //Målmanden der altid står samme sted
        pladser[0][0] = ((BANE_BREDDE - KNAP_STOERRELSE) / 2);
        pladser[0][1] = BANE_HOEJDE - (BANE_HOEJDE / 10);

        if (antalForsvar > 0) {
            forsvar(antalForsvar);
        }

        if (antalMidtbane > 0) {
            midtbane(antalMidtbane);
        }

        if (antalAngreb > 0) {
            angreb(antalAngreb);
        }

        for (int i = 0; i <= antalForsvar; i++) {
            pladser[i + 1][0] = forsvarPladser[i][0];
            pladser[i + 1][1] = forsvarPladser[i][1];
        }
        for (int i = 0; i <= antalMidtbane; i++) {
            int p = (i + 1 + antalForsvar);
            pladser[p][0] = midtbanePladser[i][0];
            pladser[p][1] = midtbanePladser[i][1];
        }
        for (int i = 0; i <= antalAngreb; i++) {
            int p = (i + 1 + antalForsvar + antalMidtbane);
            pladser[p][0] = angrebPladser[i][0];
            pladser[p][1] = angrebPladser[i][1];
        }

    }

    private void forsvar(int antal) {
        int placeringSum = 0;
        for (int i = 0; i <= antal; i++) {
            int plads = ((BANE_BREDDE - KNAP_STOERRELSE) / antal);
            forsvarPladser[i][0] = placeringSum + (plads / 2);
            forsvarPladser[i][1] = (BANE_HOEJDE - (BANE_HOEJDE / 4) - BANE_HOEJDE / 20);
            placeringSum = placeringSum + plads;
        }

    }

    private void midtbane(int antal) {
        int placeringSum = 0;
        for (int i = 0; i <= antal; i++) {
            int plads = ((BANE_BREDDE - KNAP_STOERRELSE) / antal);
            midtbanePladser[i][0] = placeringSum + (plads / 2);
            midtbanePladser[i][1] = BANE_HOEJDE - (BANE_HOEJDE / 2)
                    - BANE_HOEJDE / 20;
            placeringSum = placeringSum + plads;
        }

    }

    private void angreb(int antal) {
        int placeringSum = 0;
        for (int i = 0; i <= antal; i++) {
            int plads = ((BANE_BREDDE - KNAP_STOERRELSE) / antal);
            angrebPladser[i][0] = placeringSum + (plads / 2);
            angrebPladser[i][1] = BANE_HOEJDE - (3 * BANE_HOEJDE / 4)
                    - BANE_HOEJDE / 20;
            placeringSum = placeringSum + plads;
        }

    }

    private void setSpillerBounds(SpillerKnap sk, int nummer) {
        sk.setBounds(pladser[nummer][0], pladser[nummer][1], KNAP_STOERRELSE,
                KNAP_STOERRELSE);

        return;
    }

    private void updatePanel() {
        for (int i = 0; i < spillerKnapper.length; i++) {
            setSpillerBounds(spillerKnapper[i], i);
        }
    }

    public void kaldKnap3(){
       
>>>>>>>>>>>>>>>>>>>>>Her sidder udskriv knappen<<<<<<<<<<<<<<<<

    }
       
       
    public void kaldKnap4() {
        spillerListePopUp();
    }

    public void spillerListePopUp() {
        final JFrame spillerListePopUp = new JFrame("Rediger spillerliste");
        ArrayList spillerListe = new ArrayList();
        spillerListe = Spiller.hentAlleSpillere("AAB");

        String[] navn = new String[spillerListe.size()];
        String[] sparkeBenArray = new String[spillerListe.size()];
        String[] positionArray = new String[spillerListe.size()];
        int[] pointArray = new int[spillerListe.size()];
        int[] idArray = new int[spillerListe.size()];
        int checkSpillere = 0;
        for (int i = 0; i < spillerListe.size(); i++) {
            if (((Spiller) spillerListe.get(i)).status) {
                idArray[checkSpillere] = (((Spiller) spillerListe.get(i)).spillerId);
                navn[checkSpillere] = (((Spiller) spillerListe.get(i)).fornavn
                        + " " + ((Spiller) spillerListe.get(i)).efternavn);
                sparkeBenArray[checkSpillere] = (((Spiller) spillerListe.get(i)).sparkeben);
                positionArray[checkSpillere] = (((Spiller) spillerListe.get(i)).position);
                pointArray[checkSpillere] = (((Spiller) spillerListe.get(i)).point);
                System.out.println(navn[checkSpillere]);
                checkSpillere = checkSpillere + 1;
            }
        }

        JPanel spillerListePopUpMain = new JPanel();
        spillerListePopUpMain.setLayout(null);
        spillerListePopUpMain.setPreferredSize(new Dimension(470,
                checkSpillere * 28));

        JScrollPane spillerListeScroll = new JScrollPane(spillerListePopUpMain);
        spillerListeScroll.setBounds(10, 10, 470, 320);
        spillerListeScroll.setBorder(new TitledBorder(new EtchedBorder(),
                "Spillerliste"));
        spillerListeScroll
                .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        spillerListeScroll
                .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        JPanel spillerListePopUpBottom = new JPanel();
        spillerListePopUpBottom.setBounds(10, 330, 470, 50);
        spillerListePopUpBottom.setLayout(null);
        spillerListePopUpBottom.setBorder(new TitledBorder(new EtchedBorder()));

        JLabel spillerVaelgLabel = new JLabel("Vælg");
        spillerVaelgLabel.setBounds(6, 0, 60, 20);
        spillerListePopUpMain.add(spillerVaelgLabel);

        JLabel spillerNavnLabel = new JLabel("Navn");
        spillerNavnLabel.setBounds(100, 0, 60, 20);
        spillerListePopUpMain.add(spillerNavnLabel);

        JLabel spillerSparkebenLabel = new JLabel("Sparkeben");
        spillerSparkebenLabel.setBounds(200, 0, 70, 20);
        spillerListePopUpMain.add(spillerSparkebenLabel);

        JLabel spillerPositionLabel = new JLabel("Position");
        spillerPositionLabel.setBounds(305, 0, 60, 20);
        spillerListePopUpMain.add(spillerPositionLabel);

        JLabel spillerPointLabel = new JLabel("Point");
        spillerPointLabel.setBounds(400, 0, 60, 20);
        spillerListePopUpMain.add(spillerPointLabel);

        //Opretter elementer til hver af de spillere der står som værende klar.
        //Giver dem placering på grænsefladen.
        int verticalBounds = 25;
        JCheckBox[] spillerCheckBox = new JCheckBox[checkSpillere];
        JLabel[] spillerArray = new JLabel[checkSpillere];
        JTextField[] spillerTextArray = new JTextField[checkSpillere];
        for (int j = 0; j < checkSpillere; j++) {
            spillerCheckBox[j] = new JCheckBox();
            spillerCheckBox[j].setBounds(10, verticalBounds, 20, 20);
            spillerListePopUpMain.add(spillerCheckBox[j]);
            spillerCheckBox[j].setName(""+idArray[j]);

            spillerTextArray[j] = new JTextField(navn[j]);
            spillerTextArray[j].setBounds(40, verticalBounds, 170, 20);
            spillerTextArray[j].setEditable(false);
            spillerListePopUpMain.add(spillerTextArray[j]);

            spillerTextArray[j] = new JTextField(sparkeBenArray[j]);
            spillerTextArray[j].setBounds(210, verticalBounds, 70, 20);
            spillerTextArray[j].setEditable(false);
            spillerListePopUpMain.add(spillerTextArray[j]);

            spillerTextArray[j] = new JTextField(positionArray[j]);
            spillerTextArray[j].setBounds(280, verticalBounds, 74, 20);
            spillerTextArray[j].setEditable(false);
            spillerListePopUpMain.add(spillerTextArray[j]);

            spillerTextArray[j] = new JTextField("" + pointArray[j]);
            spillerTextArray[j].setBounds(356, verticalBounds, 20, 20);
            spillerTextArray[j].setEditable(false);
            spillerListePopUpMain.add(spillerTextArray[j]);

            spillerTextArray[j] = new JTextField("" + pointArray[j]);
            spillerTextArray[j].setBounds(378, verticalBounds, 20, 20);
            spillerTextArray[j].setEditable(false);
            spillerListePopUpMain.add(spillerTextArray[j]);

            spillerTextArray[j] = new JTextField("" + pointArray[j]);
            spillerTextArray[j].setBounds(400, verticalBounds, 20, 20);
            spillerTextArray[j].setEditable(false);
            spillerListePopUpMain.add(spillerTextArray[j]);

            verticalBounds = verticalBounds + 25;
            System.out.println(" "+ idArray[j]);
        }

        ActionListener annullerKnapListener = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                spillerListePopUp.dispose();
            }
        };

        JButton gemKnap = new JButton("Gem");
        gemKnap.setBounds(230, 10, 110, 30);

        JButton annullerKnap = new JButton("Annuller");
        annullerKnap.setBounds(350, 10, 110, 30);

        spillerListePopUpBottom.add(annullerKnap);
        spillerListePopUpBottom.add(gemKnap);
        Container cp = spillerListePopUp.getContentPane();
        cp.add(spillerListeScroll);
        cp.add(spillerListePopUpBottom);
        cp.setLayout(null);

        spillerListePopUp.setSize(500, 440);
        spillerListePopUp.setVisible(true);
        annullerKnap.addActionListener(annullerKnapListener);
    }
}
Avatar billede seattaken Nybegynder
07. december 2004 - 15:43 #1
Lukkes
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