package geometrischeformen.rechteck;
import geometrischeformen.*;
import java.awt.*;
import javax.swing.*;
import tastaturen.*;
public class jPQuadrat extends javax.swing.JPanel
{
int minabstand=6;
boolean toushpad=false;
double a=0.0;
public jPQuadrat()
{
initComponents();
initEventComponents();
}
private void initEventComponents()
{
jTFSeite.getDocument().addDocumentListener(new javax.swing.event.DocumentListener() {
public void changedUpdate(javax.swing.event.DocumentEvent e){}
public void removeUpdate(javax.swing.event.DocumentEvent e) {}
public void insertUpdate(javax.swing.event.DocumentEvent e) {if(toushpad)werteBerechnen();}
});
}
@SuppressWarnings("unchecked")
private void initComponents() {
jBLoeschen = new javax.swing.JButton();
jLSeite = new javax.swing.JLabel();
jTFSeite = new javax.swing.JTextField();
jLMm = new javax.swing.JLabel();
jLa1 = new javax.swing.JLabel();
jLa2 = new javax.swing.JLabel();
setLayout(null);
jBLoeschen.setText("Löschen");
jBLoeschen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBLoeschenActionPerformed(evt);
}
});
add(jBLoeschen);
jBLoeschen.setBounds(50, 30, 170, 50);
jLSeite.setText("Seite a eingeben:");
add(jLSeite);
jLSeite.setBounds(100, 110, 170, 50);
jTFSeite.setText("0.0");
jTFSeite.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTFSeiteMouseClicked(evt);
}
});
jTFSeite.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTFSeiteActionPerformed(evt);
}
});
add(jTFSeite);
jTFSeite.setBounds(220, 150, 140, 50);
jLMm.setText("mm");
add(jLMm);
jLMm.setBounds(60, 200, 90, 50);
jLa1.setText("a");
add(jLa1);
jLa1.setBounds(220, 220, 90, 50);
jLa2.setText("a");
add(jLa2);
jLa2.setBounds(170, 220, 90, 50);
}
private void jTFSeiteMouseClicked(java.awt.event.MouseEvent evt) {
callTouchNumPad(toushpad, jTFSeite);
}
private void jTFSeiteActionPerformed(java.awt.event.ActionEvent evt) {
werteBerechnen();
}
private void jBLoeschenActionPerformed(java.awt.event.ActionEvent evt) {
jTFSeite.setText("0.0");
a=0.0;
}
private javax.swing.JButton jBLoeschen;
private javax.swing.JLabel jLMm;
private javax.swing.JLabel jLSeite;
private javax.swing.JLabel jLa1;
private javax.swing.JLabel jLa2;
private javax.swing.JTextField jTFSeite;
@Override
protected void paintComponent( Graphics g )
{
Graphics2D g2D = (Graphics2D) g;
super.paintComponent( g2D );
jBerechnungen berechnung= new jBerechnungen();
int lHohe=this.getHeight();
int lBreite =this.getWidth();
jBLoeschen.setBounds(0, 0, jBLoeschen.getSize().width, jBLoeschen.getSize().height);
jBLoeschen.setFont(this.getFont());
jLSeite.setBounds(jBLoeschen.getSize().width, 0, jLSeite.getSize().width, jLSeite.getSize().height);
jLSeite.setFont(this.getFont());
jTFSeite.setBounds(jBLoeschen.getSize().width+jLSeite.getSize().width,0,jTFSeite.getSize().width,jTFSeite.getSize().height);
jTFSeite.setFont(this.getFont());
jLMm.setBounds(jBLoeschen.getSize().width+jLSeite.getSize().width+jTFSeite.getSize().width, 0, jLMm.getSize().width, jLMm.getSize().height);
jLMm.setFont(this.getFont());
jLa1.setFont(this.getFont());
jLa2.setFont(this.getFont());
int obererAbstand = jBLoeschen.getSize().height+jLa1.getSize().height;
int untererAbstand = 0;
int rechterAbstand =jLa2.getSize().width;
int linkenAbstand = 0;
int BoX = berechnung.getKleinstenInBoxWert(lHohe, lBreite, obererAbstand, untererAbstand, rechterAbstand, linkenAbstand);
jLa1.setBounds(lBreite/2, lHohe/2-BoX/2-jLa1.getSize().height, jLa1.getSize().width, jLa1.getSize().height);
jLa2.setBounds(lBreite/2+BoX/2+2*minabstand, lHohe/2-jLa2.getSize().height/2, jLa2.getSize().width, jLa2.getSize().height);
g2D.setColor(new Color(244,164,96));
g2D.fillRect(lBreite/2-BoX/2, lHohe/2-BoX/2, BoX, BoX);
g2D.setColor(Color.BLACK);
g2D.drawLine(lBreite/2-BoX/2, lHohe/2-BoX/2, lBreite/2+BoX/2, lHohe/2-BoX/2);
g2D.drawLine(lBreite/2-BoX/2, lHohe/2-BoX/2, lBreite/2-BoX/2, lHohe/2+BoX/2);
g2D.drawLine(lBreite/2+BoX/2, lHohe/2-BoX/2, lBreite/2+BoX/2, lHohe/2+BoX/2);
g2D.drawLine(lBreite/2-BoX/2, lHohe/2+BoX/2, lBreite/2+BoX/2, lHohe/2+BoX/2);
g2D.setColor(Color.BLUE);
int wert=2;
g2D.drawLine(lBreite/2-BoX/2, lHohe/2-BoX/2-(minabstand+wert), lBreite/2+BoX/2, lHohe/2-BoX/2-(minabstand+wert));
g2D.drawLine(lBreite/2-BoX/2, lHohe/2-BoX/2-wert, lBreite/2-BoX/2, lHohe/2-BoX/2-(2*minabstand+wert));
g2D.drawLine(lBreite/2+BoX/2, lHohe/2-BoX/2-wert, lBreite/2+BoX/2, lHohe/2-BoX/2-(2*minabstand+wert));
g2D.drawLine(lBreite/2+BoX/2+(minabstand+wert), lHohe/2-BoX/2, lBreite/2+BoX/2+(minabstand+wert), lHohe/2+BoX/2);
g2D.drawLine(lBreite/2+BoX/2+wert, lHohe/2-BoX/2, lBreite/2+BoX/2+(2*minabstand+wert), lHohe/2-BoX/2);
g2D.drawLine(lBreite/2+BoX/2+wert, lHohe/2+BoX/2, lBreite/2+BoX/2+(2*minabstand+wert), lHohe/2+BoX/2);
}
public void setToushPad(boolean option)
{
toushpad=option;
}
public void callTouchNumPad(boolean ts,JTextField jtf)
{
if(ts)
{
NumTastaturdialog st= new NumTastaturdialog((JPanel)this, true,jtf);
st.setLocation(jtf.getLocationOnScreen().x+jtf.getSize().width,
jtf.getLocationOnScreen().y+jtf.getSize().height);
st.setVisible(true);
}
}
public void werteBerechnen()
{
boolean fehler=false;
try
{
a=Double.parseDouble(jTFSeite.getText());
this.repaint();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Falscher Wert: "+jTFSeite.getText(), "Fehler", JOptionPane.ERROR_MESSAGE);
fehler=true;
}
if(fehler)jTFSeite.setText("0.0");
}
}