Udskriv enten screenshot eller udvalgte dele af programmert
Hej EksperterJeg 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);
}
}