Hallo,
ich arbeite im moment an einem JFrame, dass ein Canvas beinhaltet. Ich habe das "Aussehen" des JFrames mit NetBeans erstellt. Das Programm soll sich die Coordinaten von 3 Punkten merken, und sie im canvas darstellen und mit "A", "B" und "C" beschriften. Ich bin so weit, dass er sich die drei Punkte merkt. Ich bekomm es jedoch nicht hin, etwas in das Canvas zu zeichnen. Hier mein Code:
import java.awt.Graphics;
import java.awt.Color;
/*
* DreieckKreisGUI.java
*
* Created on 19. Juni 2008, 14:1
*
* @author René
*/
public class DreieckKreisGUI extends javax.swing.JFrame {
public int iPoints = 0;
// PointABC[0] is allways Thex-Coordinate - PointABC[1] the y-Coordinate
public int[] PointA = new int[2];
public int[] PointB = new int[2];
public int[] PointC = new int[2];
/** Creates new form DreieckKreisGUI */
public DreieckKreisGUI() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
canvas = new java.awt.Canvas();
jProgressBar1 = new javax.swing.JProgressBar();
jToggleButton1 = new javax.swing.JToggleButton();
jSeparator1 = new javax.swing.JSeparator();
Anweisungen = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextPane1 = new javax.swing.JTextPane();
ProtokollLabel = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
canvas.setBackground(new java.awt.Color(255, 255, 255));
canvas.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
canvasMouseReleased(evt);
}
});
jToggleButton1.setText("| |");
Anweisungen.setText("Anweisungen");
jScrollPane1.setBackground(new java.awt.Color(230, 230, 230));
jScrollPane1.setAutoscrolls(true);
jScrollPane1.setViewportView(jTextPane1);
ProtokollLabel.setText("Protokoll");
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()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(canvas, javax.swing.GroupLayout.PREFERRED_SIZE, 616, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Anweisungen))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ProtokollLabel)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
.addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
.addComponent(jProgressBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
.addComponent(jToggleButton1))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(Anweisungen)
.addComponent(ProtokollLabel))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 558, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jToggleButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(canvas, javax.swing.GroupLayout.DEFAULT_SIZE, 640, Short.MAX_VALUE))
.addContainerGap())
);
pack();
}// </editor-fold>
private void canvasMouseReleased(java.awt.event.MouseEvent evt) {
int MouseX = canvas.getMousePosition().x;
int MouseY = canvas.getMousePosition().y;
switch (iPoints) {
case 0:
PointA[0] = MouseX;
PointA[1] = MouseY;
iPoints++;
//hier soll er NUR das Canvas repainten
break;
case 1:
PointB[0] = MouseX;
PointB[1] = MouseY;
iPoints++;
//hier soll er NUR das Canvas repainten
break;
case 2:
PointC[0] = MouseX;
PointC[1] = MouseY;
iPoints++;
Graphics g = null;
canvas.paint(g);
//hier soll er NUR das Canvas repainten
break;
default:
break;
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new DreieckKreisGUI().setVisible(true);
}
});
}
public void start() {
Anweisungen.setText("Klicken Sie auf eine Stelle, um den " + (iPoints+1) + ". Punkt festzulegen.");
}
// Variables declaration - do not modify
private javax.swing.JLabel Anweisungen;
private javax.swing.JLabel ProtokollLabel;
private java.awt.Canvas canvas;
private javax.swing.JProgressBar jProgressBar1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTextPane jTextPane1;
private javax.swing.JToggleButton jToggleButton1;
// End of variables declaration
}