Hallo alle miteinander,
Das Problem ist das ich gerade für ein Projekt einen Trikotkonfigurator, oder sowas ähnliches, schreibe. Im Grunde fragt dieser einfach nur die eingabe werte von Checkboxen und Choice-Menüs ab, was auch für meine Zwecke komplett ausreichen ist.
Das was nicht funktioniert ist das ich die beiden Bilder des Trikot und das darüber liegende muster nicht darstellen kann. Es sind beides png-Dateien, die in zwei übereinander liegenden Panels dargestellt werden sollen. Jedoch wenn man das teilweise transparente Muster wählt wird das Trikot komplett überdeckt. Habe auch schon versucht das Muster in einem LayeredPane darszustellen das funktioniert aber auch nicht, da dann gar nichts angezeigt wird.
Danke schonmal für alle Antworten
MfG Kackrim
PS: das Problem müsste in Zeile 113 Stecken
Das komplette Projekt mit allen Klassen und Bilddateien
konfig.rar
Das Problem ist das ich gerade für ein Projekt einen Trikotkonfigurator, oder sowas ähnliches, schreibe. Im Grunde fragt dieser einfach nur die eingabe werte von Checkboxen und Choice-Menüs ab, was auch für meine Zwecke komplett ausreichen ist.
Das was nicht funktioniert ist das ich die beiden Bilder des Trikot und das darüber liegende muster nicht darstellen kann. Es sind beides png-Dateien, die in zwei übereinander liegenden Panels dargestellt werden sollen. Jedoch wenn man das teilweise transparente Muster wählt wird das Trikot komplett überdeckt. Habe auch schon versucht das Muster in einem LayeredPane darszustellen das funktioniert aber auch nicht, da dann gar nichts angezeigt wird.
Danke schonmal für alle Antworten
MfG Kackrim
PS: das Problem müsste in Zeile 113 Stecken
Das komplette Projekt mit allen Klassen und Bilddateien
konfig.rar
Java:
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.io.File;
import java.io.IOException;
import javax.swing.*;
public class Karim extends JFrame{
private JPanel contentPane;
Bild bild = new Bild();
Mubild mubild = new Mubild();
BufferedImage auswahl;
BufferedImage muauswahl;
int farbe;
int mufarbe;
public Karim() {
setVisible(true);
setTitle("District 12 Konfigurator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
CheckboxGroup cbkform = new CheckboxGroup();
Checkbox ckb_rund = new Checkbox("Rundhals",cbkform,true);
Checkbox ckb_v = new Checkbox("V-Neck",cbkform,false);
Checkbox ckb_polo = new Checkbox("Polokragen",cbkform,false);
Label lbl_grund = new Label();
final Choice chc_gfarbe = new Choice();
Label lbl_muster = new Label();
CheckboxGroup chbmuster = new CheckboxGroup();
Checkbox chb_quer = new Checkbox("Querstreifen",chbmuster,true);
Checkbox chb_laengs = new Checkbox("Längsstreifen",chbmuster,false);
Checkbox chb_karo = new Checkbox("Karo",chbmuster,false);
Choice chc_mufarbe = new Choice();
Container cp = getContentPane();
cp.setLayout(null);
ckb_rund.setBounds(8, 24, 100, 20);
cp.add(ckb_rund);
ckb_v.setBounds(8, 40, 100, 20);
cp.add(ckb_v);
ckb_polo.setBounds(8, 56, 100, 20);
cp.add(ckb_polo);
lbl_grund.setBounds(0, 8, 110, 20);
lbl_grund.setText("Trikot:");
cp.add(lbl_grund);
chc_gfarbe.setBounds(8, 80, 102, 20);
chc_gfarbe.add("Rot");
chc_gfarbe.add("Blau");
chc_gfarbe.add("Grün");
chc_gfarbe.add("Gelb");
chc_gfarbe.add("Grau");
cp.add(chc_gfarbe);
lbl_muster.setBounds(0, 112, 102, 20);
lbl_muster.setText("Muster:");
cp.add(lbl_muster);
chb_quer.setBounds(8, 128, 100, 20);
cp.add(chb_quer);
chb_laengs.setBounds(8, 144, 100, 20);
cp.add(chb_laengs);
chb_karo.setBounds(8, 160, 100, 20);
cp.add(chb_karo);
chc_mufarbe.setBounds(8, 184, 102, 20);
chc_mufarbe.add("Hellblau");
chc_mufarbe.add("Orange");
chc_mufarbe.add("Weiß");
cp.add(chc_mufarbe);
ckb_rund.setState(true);
chb_quer.setState(true);
final JPanel trikot = new JPanel();
trikot.setSize(new Dimension(200, 250));
trikot.setPreferredSize(new Dimension(200, 250));
trikot.setLocation(new Point(230, 5));
contentPane.add(trikot, BorderLayout.NORTH);
//Muster
JPanel Muster = new JPanel();
Muster.setSize(new Dimension(200, 250));
Muster.setLocation(new Point(230, 5));
contentPane.add(Muster);
//Anzeige in Bild
trikot.add(new JLabel(new ImageIcon(bild.getStartImage())));
Muster.add(new JLabel(new ImageIcon(mubild.getStartImage())));
// Farben (Muss immer vor der Formauswahl erfolgen da die Farbe sonst immer rot ist)
chc_gfarbe.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
String Rot ="Rot";
String Blau ="Blau";
String Gruen="Grün";
String Gelb="Gelb";
String Grau="Grau";
String aw = chc_gfarbe.getSelectedItem();
if ( Rot.equals(aw))
{
farbe = 1;
}
else if(Blau.equals(aw))
{
farbe = 2;
}
else if(Gruen.equals(aw))
{
farbe = 3;
}
else if(Gelb.equals(aw))
{
farbe = 4;
}
else if(Grau.equals(aw))
{
farbe = 5;
}
}
});
// Form (V-Neck)
ckb_v.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
if (farbe == 1)
{
try {
auswahl = ImageIO.read(new File ("vrot.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 2)
{
try {
auswahl = ImageIO.read(new File ("vblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 3)
{
try {
auswahl = ImageIO.read(new File ("vgruen.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 4)
{
try {
auswahl = ImageIO.read(new File ("vgelb.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 5)
{
try {
auswahl = ImageIO.read(new File ("vgrau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
auswahl = ImageIO.read(new File ("vrot.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
bild.setImage(auswahl);
//Löscht das aktuelle Bild aus dem Panel
trikot.removeAll();
//Setzt das neue
trikot.add(new JLabel(new ImageIcon(bild.getBild())));
// Erneuert das Panel
trikot.validate();
}
});
//Formen (Polo)
ckb_polo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e2) {
// TODO Auto-generated method stub
if (farbe == 1)
{
try {
auswahl = ImageIO.read(new File ("polorot.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 2)
{
try {
auswahl = ImageIO.read(new File ("poloblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 3)
{
try {
auswahl = ImageIO.read(new File ("pologruen.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 4)
{
try {
auswahl = ImageIO.read(new File ("pologelb.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 5)
{
try {
auswahl = ImageIO.read(new File ("polograu.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
auswahl = ImageIO.read(new File ("polorot.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
bild.setImage(auswahl);
//Löscht das aktuelle Bild aus dem Panel
trikot.removeAll();
//Setzt das neue
trikot.add(new JLabel(new ImageIcon(bild.getBild())));
// Erneuert das Panel
trikot.validate();
}
});
//Formen (Rund)
ckb_rund.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e3) {
if (farbe == 1)
{
try {
auswahl = ImageIO.read(new File ("rundrot.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 2)
{
try {
auswahl = ImageIO.read(new File ("rundblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 3)
{
try {
auswahl = ImageIO.read(new File ("rundgruen.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 4)
{
try {
auswahl = ImageIO.read(new File ("rundgelb.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (farbe == 5)
{
try {
auswahl = ImageIO.read(new File ("rundgrau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
auswahl = ImageIO.read(new File ("rundrot.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
bild.setImage(auswahl);
//Löscht das aktuelle Bild aus dem Panel
trikot.removeAll();
//Setzt das neue
trikot.add(new JLabel(new ImageIcon(bild.getBild())));
// Erneuert das Panel
trikot.validate();
}
});
// Musterfarbe
chc_mufarbe.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
String Hellblau ="Hellblau";
String Orange ="Orange";
String Weiss="Weiß";
String amu = chc_mufarbe.getSelectedItem();
if ( Hellblau.equals(amu))
{
mufarbe = 1;
}
else if(Orange.equals(amu))
{
mufarbe = 2;
}
else if(Weiss.equals(amu))
{
mufarbe = 3;
}
}
});
chb_quer.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
if (mufarbe == 1)
{
try {
muauswahl = ImageIO.read(new File ("querhellblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (mufarbe == 2)
{
try {
muauswahl = ImageIO.read(new File ("querorange.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (mufarbe == 3)
{
try {
muauswahl = ImageIO.read(new File ("querweiß.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
muauswahl = ImageIO.read(new File ("querhellblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mubild.setImage(muauswahl);
//Löscht das aktuelle Bild aus dem Panel
Muster.removeAll();
//Setzt das neue
Muster.add(new JLabel(new ImageIcon(mubild.getMubild())));
// Erneuert das Panel
Muster.validate();
}
});
chb_laengs.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
if (mufarbe == 1)
{
try {
muauswahl = ImageIO.read(new File ("laengshellblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (mufarbe == 2)
{
try {
muauswahl = ImageIO.read(new File ("laengsorange.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (mufarbe == 3)
{
try {
muauswahl = ImageIO.read(new File ("laengsweiß.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
muauswahl = ImageIO.read(new File ("laengshellblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mubild.setImage(muauswahl);
//Löscht das aktuelle Bild aus dem Panel
Muster.removeAll();
//Setzt das neue
Muster.add(new JLabel(new ImageIcon(mubild.getMubild())));
// Erneuert das Panel
Muster.validate();
}
});
chb_karo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
if (mufarbe == 1)
{
try {
muauswahl = ImageIO.read(new File ("karohellblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (mufarbe == 2)
{
try {
muauswahl = ImageIO.read(new File ("karoorange.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else if (mufarbe == 3)
{
try {
muauswahl = ImageIO.read(new File ("karoweiß.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
try {
muauswahl = ImageIO.read(new File ("karohellblau.png"));
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mubild.setImage(muauswahl);
//Löscht das aktuelle Bild aus dem Panel
Muster.removeAll();
//Setzt das neue
Muster.add(new JLabel(new ImageIcon(mubild.getMubild())));
// Erneuert das Panel
Muster.validate();
}
});
}
}