Hallo,
ich habe ein Programm eines Vorgängers welches ich erweitern muss.
Hierzu will ich als Hintergrund für meinen StartPanel ein Bild einbauen.
Hier der Code für die Startseite. Das Programm besteht allerdings noch aus anderen Klassen.
für das Bild hab ich eine extra Klasse:
ich denke ja das ich irgendwo diese Zeilen einbauen muss..Nur hab ich keine Ahnung wo und wie
Würde mich mega freuen wenn mir jemand auf die Sprünge helfen würde.
DANKE
ich habe ein Programm eines Vorgängers welches ich erweitern muss.
Hierzu will ich als Hintergrund für meinen StartPanel ein Bild einbauen.
Hier der Code für die Startseite. Das Programm besteht allerdings noch aus anderen Klassen.
Java:
package messdatenauswertung;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
import static messdatenauswertung.Messpunkt.*;
public class Start implements ActionListener{ //Interface ActionListener implementieren
static BufferedImage img_plan = null; //Bild(Lageplan)festlegen
static JFrame frame_hauptfenster = new JFrame(); //Hauptfenster festlegen
static JPanel panel_buttons = new JPanel(); //3 Buttons im Panel festlegen
static JButton btn_gebaeudeplan = new JButton("Gebäudeplan"); //3 Buttons deklarieren
static JButton btn_messpunkt = new JButton("Messpunkt");
static JButton btn_auswertung = new JButton("Auswertung");
static JPanel panel_darstellung= new JPanel() { //Darstellungspanel festlegen
@Override
public void paintComponent(Graphics g)
{
g.drawImage(img_plan, 0, 0, (int) (Math.sqrt(2)*getHeight()), getHeight(), this); //Bild "img_plan" darstellen ->
} //(pos.2u3 Koord.,4u5Kasten für Bild,6 Observer für wann Bild gezeigt)
};
JMenuBar menuebar = new JMenuBar(); // Menüleiste erstellen
JMenu menue_datei = new JMenu("Datei");
JMenuItem item_beenden;
public static void main(String[] args) {
new Start().design();
}
private float CENTER_ALIGNMENT;
private void design() { //Benutzeroberfläche erstellen
frame_hauptfenster.setExtendedState(JFrame.MAXIMIZED_BOTH); //Prog.mit max.Fenster starten
frame_hauptfenster.setUndecorated(false); //Windows Task leiste ausblenden
frame_hauptfenster.setTitle("Progamm zur Messwertauswertung");
panel_darstellung.setLayout(null); //
frame_hauptfenster.getContentPane().add(panel_darstellung); //Panel-Darst., nicht direkt an die Hauptf. angehängt, sondern an eine
//spezielle Inhalts-Komponente, welche man mit "getContentPane()" bekommt
panel_buttons.setLayout(new BoxLayout(panel_buttons, BoxLayout.Y_AXIS));//Buttons untereinander anordnen
frame_hauptfenster.add(panel_buttons, BorderLayout.EAST); //Panel mit Buttons im Hauptfenster einbinden
btn_gebaeudeplan.setToolTipText("Gebäudeplan laden"); //Buttons beschriften
panel_buttons.add(btn_gebaeudeplan); //Buttons im Panel einbinden
btn_messpunkt.setToolTipText("Messpunkt festlegen");
panel_buttons.add(btn_messpunkt);
btn_auswertung.setToolTipText("Auswertung anzeigen");
panel_buttons.add(btn_auswertung);
btn_gebaeudeplan.setAlignmentX(CENTER_ALIGNMENT); //Schriftanordnung zentral
btn_gebaeudeplan.setMaximumSize(new Dimension(Integer.MAX_VALUE, btn_gebaeudeplan.getMaximumSize().height)); //Buttonsgröße bestimmt
btn_messpunkt.setAlignmentX(CENTER_ALIGNMENT);
btn_messpunkt.setMaximumSize(new Dimension(Integer.MAX_VALUE, btn_messpunkt.getMaximumSize().height));
btn_auswertung.setAlignmentX(CENTER_ALIGNMENT);
btn_auswertung.setMaximumSize(new Dimension(Integer.MAX_VALUE, btn_auswertung.getMaximumSize().height));
btn_gebaeudeplan.addActionListener(this);
btn_messpunkt.addActionListener(this); //Instanzen von Button übergeben
btn_auswertung.addActionListener(this);
item_beenden = new JMenuItem("Beenden"); //neue Option in der Menüleiste erstellen
item_beenden.addActionListener(this); //Instanz zuweisen für Knopfdruck auf Beenden
menue_datei.add(item_beenden); //anbinden der Option Beenden an Fenster Datei in Menüleiste
menuebar.add(menue_datei); //Menüleiste an Frame anbinden
frame_hauptfenster.add(menuebar,BorderLayout.NORTH);
frame_hauptfenster.setVisible(true);
frame_hauptfenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) { //Aufruf der einzelnen Klassen bei Betätigung der Buttons oder Items
if (e.getSource() == btn_gebaeudeplan){ //Ereignis wenn Button Geb.Pl. gedrückt
if (img_plan == null){ //wenn kein Bild geladen dann....
new Gebaeudeplan(); // Klasse Gebäudeplan neu laden
}else{ //ansonsten
Object[] options = {"JA", "Nein"}; //wenn Bild geladen und Button gedrückt dann Entscheidung ja oder nein
int result = JOptionPane.showOptionDialog(null,
"Neuen Bauplan laden?\nAlle Bearbeitungen gehen verloren!", //Text für Optionsfenster der Entscheidung
"Warnung", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE,null, options, options[0]);
if (result == JOptionPane.YES_OPTION){ //wenn Entscheidung mit JA geantwortet dann ...
hm_messpunkt.clear(); //alles bereinigen
hm_pegeldarstellung.clear();
panel_darstellung.removeAll();
panel_darstellung.repaint();
new Gebaeudeplan(); //Klasse Gebäudeplan neu starten
}
}
}
if (e.getSource() == btn_messpunkt){ //Ereignis wenn Button Messpunkt gedrückt
if (img_plan == null){ //wenn kein Bild geladen dann....
JOptionPane.showMessageDialog(null, "Bitte erst Gebäudeplan laden!", "Fehler", JOptionPane.ERROR_MESSAGE); //Sofortnachricht
}else{
panel_darstellung.setCursor(new Cursor(Cursor.HAND_CURSOR)); //Cursor deklarieren
btn_gebaeudeplan.setEnabled(false);
btn_messpunkt.setEnabled(false);
btn_auswertung.setEnabled(false);
new Messpunkt();
}
}
if (e.getSource() == btn_auswertung){
if(hm_messpunkt.isEmpty()){
JOptionPane.showMessageDialog(null, "Keine Auswertung möglich!\nBitte Messwerte hinzufügen!", "Fehler", JOptionPane.ERROR_MESSAGE);
}else{
new Auswertung();
}
}
if (e.getSource() == item_beenden){
Object[] options = {"JA", "Nein"};
int result = JOptionPane.showOptionDialog(null,
"Wollen sie die Anwendung wirklich beenden?\n"
+ "Alle Bearbeitungen gehen verloren!", "Warnung",
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE,null,
options, options[0]);
if (result == JOptionPane.YES_OPTION){
System.exit(0);
}
}
}
}
für das Bild hab ich eine extra Klasse:
Java:
package messdatenauswertung;
import java.awt.Graphics;
import java.awt.Image;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
class BackgroundPanel extends JPanel {
private static final long serialVersionUID = 1L;
private Image img;
public BackgroundPanel() {
try {
img = ImageIO.read(getClass().getResource("Desert.jpg"));
System.out.println("Picture loaded.");
} catch (IOException e) {
e.printStackTrace();
System.out.println("Picture was not found.");
}
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
g.drawImage(img, 0, 0, this);
}
public Image getBackgroundImage() {
return img;
}
}
ich denke ja das ich irgendwo diese Zeilen einbauen muss..Nur hab ich keine Ahnung wo und wie
Java:
BackgroundPanel backgroundPanel = new BackgroundPanel();
add(backgroundPanel);
setSize(backgroundPanel.getBackgroundImage().getWidth(backgroundPanel), backgroundPanel.getBackgroundImage().getHeight(backgroundPanel));
Würde mich mega freuen wenn mir jemand auf die Sprünge helfen würde.
DANKE