Wie schon oben beschrieben versuche ich ein GUI bestehend aus JButton, JNumberField, JLabel etc. zu basteln. Ich möchte aber ich Hintergrund einen kleinen Grundriss mit Linien zeichnen lassen um es besser zu veranschaulichen.
Meine Vorgehensweise:
-JFrame
-Buttons etc. in Skyline() erstellen
-Linien in paint(Graphics g) zeichnen
-Buttons grafisch in paint(Graphics g) hinzufügen
Was Passiert?
Meine Grafik wird wie gewünscht gezeichnet, doch werden die Buttons und Textfelder erst nach einem Klich an dessen Position sichtbar, JLabel garnicht.
Was ist der Fehler?
Ich hoffe ihr könnt mir helfen!
Danke!
Meine Vorgehensweise:
-JFrame
-Buttons etc. in Skyline() erstellen
-Linien in paint(Graphics g) zeichnen
-Buttons grafisch in paint(Graphics g) hinzufügen
Was Passiert?
Meine Grafik wird wie gewünscht gezeichnet, doch werden die Buttons und Textfelder erst nach einem Klich an dessen Position sichtbar, JLabel garnicht.
Was ist der Fehler?
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JFrame;
public class Skyline extends JFrame {
// Anfang Attribute
private JNumberField jNumberField1 = new JNumberField();
private JNumberField jNumberField2 = new JNumberField();
private JNumberField jNumberField3 = new JNumberField();
private JNumberField jNumberField4 = new JNumberField();
private JNumberField jNumberField5 = new JNumberField();
private JNumberField jNumberField6 = new JNumberField();
private JNumberField jNumberField7 = new JNumberField();
private JNumberField jNumberField8 = new JNumberField();
private JButton jButton1 = new JButton();
private JLabel jLabel1 = new JLabel();
private JLabel jLabel2 = new JLabel();
private JLabel jLabel3 = new JLabel();
private JLabel jLabel4 = new JLabel();
private JLabel jLabel5 = new JLabel();
private JLabel jLabel6 = new JLabel();
private JLabel jLabel7 = new JLabel();
private JLabel jLabel8 = new JLabel();
private JLabel jLabel9 = new JLabel();
private JLabel jLabel10 = new JLabel();
private JLabel jLabel11 = new JLabel();
// Ende Attribute
public Skyline() {
// Frame-Initialisierung
setResizable(false);
this.setTitle("Skyline");
this.setLocation(100, 100);
this.setResizable(false);
this.setLayout(null);
this.setSize(510,290);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//Panel cp = new Panel(null);
//add(cp);
// Anfang Komponenten
jNumberField1.setBounds(40, 32, 33, 25);
jNumberField1.setText("");
jNumberField2.setBounds(72, 32, 33, 25);
jNumberField2.setText("");
jNumberField3.setBounds(232, 32, 33, 25);
jNumberField3.setText("");
jNumberField4.setBounds(264, 32, 33, 25);
jNumberField4.setText("");
jNumberField5.setBounds(40, 168, 33, 25);
jNumberField5.setText("");
jNumberField6.setBounds(72, 168, 33, 25);
jNumberField6.setText("");
jNumberField7.setBounds(232, 168, 33, 25);
jNumberField7.setText("");
jNumberField8.setBounds(264, 168, 33, 25);
jNumberField8.setText("");
jButton1.setBounds(112, 216, 113, 33);
jButton1.setText("Berechnen");
jButton1.setMargin(new Insets(2, 2, 2, 2));
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
jLabel1.setBounds(48, 16, 54, 20);
jLabel1.setText("Koord 1:");
jLabel2.setBounds(240, 16, 54, 20);
jLabel2.setText("Koord 2:");
jLabel3.setBounds(48, 152, 54, 20);
jLabel3.setText("Koord 3:");
jLabel4.setBounds(240, 152, 54, 20);
jLabel4.setText("Koord 4:");
jLabel5.setBounds(48, 56, 43, 19);
jLabel5.setText("x y");
jLabel6.setBounds(240, 56, 43, 19);
jLabel6.setText("x y");
jLabel7.setBounds(48, 192, 43, 19);
jLabel7.setText("x y");
jLabel8.setBounds(240, 192, 43, 19);
jLabel8.setText("x y");
jLabel9.setBounds(352, 48, 123, 25);
jLabel9.setText("Erlaubte Bauhöhe:");
jLabel10.setBounds(352, 80, 54, 20);
jLabel10.setText(" ");
jLabel10.setBackground(Color.GREEN);
jLabel10.setOpaque(true);
jLabel11.setBounds(408, 80, 54, 20);
jLabel11.setText("Meter");
jLabel11.setOpaque(false);
// Ende Komponenten
repaint();
} // end of public Skyline
public void paint(Graphics g){
//Grafik zeichnen
g.setColor(Color.BLACK);
g.drawLine(112,80,230,80);
g.drawLine(112,80,112,193);
g.drawLine(112,193,230,193);
g.drawLine(230,80,230,193);
g.fillOval(107,75,10,10);
g.fillOval(224,75,10,10);
g.fillOval(107,188,10,10);
g.fillOval(225,188,10,10);
//GUI hinzufügen
getContentPane().add(jNumberField1);
getContentPane().add(jNumberField2);
getContentPane().add(jNumberField3);
getContentPane().add(jNumberField4);
getContentPane().add(jNumberField5);
getContentPane().add(jNumberField6);
getContentPane().add(jNumberField7);
getContentPane().add(jNumberField8);
getContentPane().add(jButton1);
getContentPane().add(jLabel1);
getContentPane().add(jLabel2);
getContentPane().add(jLabel3);
getContentPane().add(jLabel4);
getContentPane().add(jLabel5);
getContentPane().add(jLabel6);
getContentPane().add(jLabel7);
getContentPane().add(jLabel8);
getContentPane().add(jLabel9);
getContentPane().add(jLabel10);
getContentPane().add(jLabel11);
}
public void jButton1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of jButton1_ActionPerformed
// Ende Methoden
public static void main(String[] args) {
new Skyline();
} // end of main
} // end of class Skyline
Ich hoffe ihr könnt mir helfen!
Danke!