Hey ihr,
ich habe das Problem, dass die Knöpfe mit den Bildern nicht geladen werden. Die Dateipfade sind richtig, da es mit nur einem Bild schon mal klappte, jetzt, nachdem ich zwei weitere hinzugefügt habe (insgesamt 4 neue Knöpfe) und sie registrierte, funktionierte das Programm nicht mehr, da es keine Knöpfe lädt.
Ich habe drei verschiedene Klassen:
Hauptklasse "Main.java":
Nebenklasse "Knöpfe.java"
Nebenklasse "Hintergrund.java":
Schon mal Danke im Vorraus, entweder irgendwas ist grundlegend falsch oder ich bin einfach zu blind ^^
Gruß Maam
ich habe das Problem, dass die Knöpfe mit den Bildern nicht geladen werden. Die Dateipfade sind richtig, da es mit nur einem Bild schon mal klappte, jetzt, nachdem ich zwei weitere hinzugefügt habe (insgesamt 4 neue Knöpfe) und sie registrierte, funktionierte das Programm nicht mehr, da es keine Knöpfe lädt.
Ich habe drei verschiedene Klassen:
Hauptklasse "Main.java":
Java:
package com.mathis.energiezimmer;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
@SuppressWarnings("serial")
public class Main extends JFrame implements ActionListener, ItemListener {
public static JFrame frame;
public static JPanel panel;
public static Container cp;
public Main() {
Container cp = getContentPane();
cp.setLayout(null);
cp.setVisible(true);
Knöpfe.buttons();
cp.add(Knöpfe.heizung);
cp.add(Knöpfe.box1);
cp.add(Knöpfe.box2);
cp.add(Knöpfe.box3);
cp.add(Knöpfe.box4);
frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.pack();
frame.setVisible(true);
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Energiezimmer");
frame.setResizable(false);
frame.getContentPane().setBackground(Color.WHITE);
Knöpfe.heizung.addActionListener(this);
}
public static void main(String[] args) {
new Main();
Hintergrund.background();
frame.repaint();
}
public static Checkbox eins, zwei, drei, vier, fünf;
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == Knöpfe.heizung) {
JDialog heizung = new JDialog();
CheckboxGroup cbg = new CheckboxGroup();
eins = new Checkbox("Heizung durchgegend auf 5", cbg, false);
zwei = new Checkbox("Heizung im Sommer auf 4", cbg, false);
drei = new Checkbox("Heizung, wenn sie gebraucht wird, auf 2", cbg, false);
vier = new Checkbox("Heizung immer auf 0", cbg, false);
fünf = new Checkbox("Heizung im Winter auf 5, sonst nur auf 3", cbg, true);
eins.addItemListener(this);
zwei.addItemListener(this);
drei.addItemListener(this);
vier.addItemListener(this);
fünf.addItemListener(this);
heizung.add(eins);
heizung.add(zwei);
heizung.add(drei);
heizung.add(vier);
heizung.add(fünf);
heizung.setLayout(new FlowLayout());
heizung.pack();
heizung.setVisible(true);
heizung.setSize(975, 65);
heizung.setLocationRelativeTo(getParent());
heizung.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
heizung.setTitle("Heizung");
heizung.setResizable(false);
heizung.getContentPane().setBackground(Color.LIGHT_GRAY);
heizung.setLayout(null);
}
}
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getSource() == eins | e.getSource() == zwei | e.getSource() == vier | e.getSource() == fünf) {
}
}
}
Nebenklasse "Knöpfe.java"
Java:
package com.mathis.energiezimmer;
import java.awt.*;
import javax.swing.*;
public class Knöpfe {
public static JButton heizung = new JButton();
public static JButton fenster1 = new JButton();
public static JButton fenster2 = new JButton();
public static JButton lampe = new JButton();
public static JButton wasserhahn = new JButton();
public static JButton box1 = new JButton();
public static JButton box2 = new JButton();
public static JButton box3 = new JButton();
public static JButton box4 = new JButton();
public static void buttons() {
Icon heizungIcon = new ImageIcon(System.getProperty("user.dir")+"/icon/heizung.jpg");
Icon rotIcon = new ImageIcon(System.getProperty("user.dir")+"/farben/rot.jpg");
Icon grünIcon = new ImageIcon(System.getProperty("user.dir")+"/farben/grün.jpg");
heizung.setBackground(Color.white);
heizung.setBorder(null);
box1.setBackground(Color.white);
box1.setBorder(null);
box2.setBackground(Color.white);
box2.setBorder(null);
box3.setBackground(Color.white);
box3.setBorder(null);
box4.setBackground(Color.white);
box4.setBorder(null);
heizung.setIcon(heizungIcon);
box1.setIcon(rotIcon);
box2.setIcon(rotIcon);
box3.setIcon(rotIcon);
box4.setIcon(rotIcon);
Knöpfe.heizung.setBounds(50, 375, 400, 250);
Knöpfe.box1.setBounds(50, 50, 50, 50);
Knöpfe.box2.setBounds(50, 105, 50, 50);
Knöpfe.box3.setBounds(50, 160, 50, 50);
Knöpfe.box4.setBounds(50, 215, 50, 50);
}
}
Nebenklasse "Hintergrund.java":
Java:
package com.mathis.energiezimmer;
import javax.swing.*;
public class Hintergrund {
public static void background() {
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(new ImageIcon(System.getProperty("user.dir")+"/background/bg.jpg"));
lblNewLabel.setSize(Main.frame.getWidth(), Main.frame.getHeight());
Main.frame.getContentPane().add(lblNewLabel);
Main.frame.repaint();
}
}
Schon mal Danke im Vorraus, entweder irgendwas ist grundlegend falsch oder ich bin einfach zu blind ^^
Gruß Maam