Hallo ihr Lieben,
vorab: Ich weiß dass es zu diesem Thema schon viele Tutorien gibt, doch an dieser Stelle weiß ich einfach nicht mehr weiter.
Ich möchte ein Klasse schreiben, bei der ich einer setter-Methode ein int-Array übergebe und dann die inhalte des Arrays gezeichnet werden.
Wichtig hierbei ist, dass eine vorgegebene Zeichnung hierbei nicht verloren geht.
Hier mal mein Code dazu:
package tek;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JLabel;
/\*\*
\*
\* @author brayn
\*/
public class Schnittkräfte extends javax.swing.JFrame {
Label label;
int[] werte;
Label l = new Label();
Schnittkräfte() {
initComponents();
setLayout(null);
//werte = this.werte.clone();
label = new Label();
label.setBounds(0, 0, 4000 , 2000);
add(label);
}
public void setWerte(int[] wert){
this.werte = new int[wert.length];
for(int i=0; i
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT\_ON\_CLOSE);
jLabel1.setFont(new java.awt.Font("L M Roman10", 0, 24));
jLabel1.setText("Schnittkräfteverlauf");
jLabel1.setVerticalAlignment(javax.swing.SwingConstants.TOP);
jButton1.setText("Zeichnen");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED\_SIZE, 220, javax.swing.GroupLayout.PREFERRED\_SIZE)
.addContainerGap(580, Short.MAX\_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(615, Short.MAX\_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED\_SIZE, 106, javax.swing.GroupLayout.PREFERRED\_SIZE)
.addGap(91, 91, 91))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED\_SIZE, 41, javax.swing.GroupLayout.PREFERRED\_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 297, Short.MAX\_VALUE)
.addComponent(jButton1)
.addGap(78, 78, 78))
);
pack();
}//
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//jetzt soll gezeichnet werden
l.repaint();
}
/\*\*
\* @param args the command line arguments
\*/
public void main() {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Schnittkräfte schnitt = new Schnittkräfte();
schnitt.setVisible(true);
schnitt.setDefaultCloseOperation(schnitt.DISPOSE\_ON\_CLOSE);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
// End of variables declaration
}
Ich bin so weit, dass ich mir das Grundmodell, das nicht verloren gehen soll, gezeichnet habe. Nun sollen wie bereits erwähnt, bei jedem neuen setter-Aufruf, die Werte des übergebenen Arrays neu gezeichnet werden. Ich habe gehoft, dass ich mit der repaint-Methode hier weiterkommen würde, doch das klappt irgendwie nicht. Kann mir jemand Erklären was ich falsch mache?
Liebe Grüße Matthias