Hallo,
ich wollte einen Taschenrechner in Java mit GridBagLayout schreiben.
Nun hab ich das Problem, das bei allen
die Warnung "Leaking this in constructor" kommt. Um den Fehler zu beheben schlägt
Netbeans vor, in den Optionen "Passing suspicious parameter in the constructor" zu
deaktivieren, was allerdings nicht zur Problemlösung führt.
Ich hoffe ihr könnt mir helfen das Problem zu beheben.
Für Verbesserungsvorschläge am Programm wäre ich auch dankbar,
hier einmal mein Code (ohne WindowClosingAdapter),
Mfg, Max
ich wollte einen Taschenrechner in Java mit GridBagLayout schreiben.
Nun hab ich das Problem, das bei allen
Code:
Add.addActionListener(this);
Netbeans vor, in den Optionen "Passing suspicious parameter in the constructor" zu
deaktivieren, was allerdings nicht zur Problemlösung führt.
Ich hoffe ihr könnt mir helfen das Problem zu beheben.
Für Verbesserungsvorschläge am Programm wäre ich auch dankbar,
hier einmal mein Code (ohne WindowClosingAdapter),
Mfg, Max
Code:
package taschenrechner2;
import java.awt.*;
import java.awt.event.*;
public class Main
extends Frame
implements ActionListener
{
public static void main(String[] args)
{
Main wnd = new Main();
wnd.setVisible(true);
wnd.setSize(200,200);
}
Button Add, Min, Mul, Div;
TextField field1, field2, erg;
public Main()
{
super("Taschenrechner");
addWindowListener(new WindowClosingAdapter(true));
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc;
setLayout(gbl);
//Zwei Labels und zwei Textfelder
//Label1
gbc=makegbc(1,0,1,1);
gbc.fill = GridBagConstraints.NONE;
Label label = new Label("Wert1:");
gbl.setConstraints(label,gbc);
add(label);
//Textfeld1
gbc=makegbc(2,0,1,1);
gbc.weightx=100;
gbc.fill = GridBagConstraints.HORIZONTAL;
field1 = new TextField();
gbl.setConstraints(field1, gbc);
add(field1);
//Label1
gbc=makegbc(1,1,1,1);
gbc.fill = GridBagConstraints.NONE;
label = new Label("Wert2:");
gbl.setConstraints(label,gbc);
add(label);
//Textfeld1
gbc=makegbc(2,1,1,1);
gbc.fill = GridBagConstraints.HORIZONTAL;
field2 = new TextField();
gbl.setConstraints(field2, gbc);
add(field2);
//Button +
gbc=makegbc(1,2,10,1);
Add = new Button("+");
gbl.setConstraints(Add, gbc);
add(Add);
Add.addActionListener(this);
gbc=makegbc(2,2,1,1);
Min = new Button("-");
gbl.setConstraints(Min, gbc);
add(Min);
Add.addActionListener(this);
//Button *
gbc=makegbc(1,3,10,1);
Mul = new Button("*");
gbl.setConstraints(Mul, gbc);
add(Mul);
Add.addActionListener(this);
//Button /
gbc=makegbc(2,3,1,1);
Div = new Button("/");
gbl.setConstraints(Div, gbc);
add(Div);
Add.addActionListener(this);
//Textfelder
//Label1
gbc=makegbc(1,4,1,1);
gbc.fill = GridBagConstraints.NONE;
Label Text1= new Label("Ergebnis:");
gbl.setConstraints(erg,gbc);
add(erg);
//Textfeld1
gbc=makegbc(2,4,1,1);
gbc.fill = GridBagConstraints.HORIZONTAL;
erg = new TextField();
gbl.setConstraints(erg, gbc);
add(erg);
erg.addActionListener(this);
pack();
}
public void actionPerformed(ActionEvent ae)
{
Object source = ae.getSource();
double operand1, operand2, var, ergeb;
String answer;
operand1 = new Double(field1.getText());
operand2 = new Double(field2.getText());
if(source==Add)
{
ergeb = operand1 + operand2;
answer = "ergeb";
field1.setText(answer);
}
if(source==Min)
{
ergeb = operand1 - operand2;
answer = "ergeb";
erg.setText(answer);
}
if(source==Mul)
{
ergeb = operand1 * operand2;
answer = "ergeb";
erg.setText(answer);
}
if(source==Div)
{
ergeb = operand1 / operand2;
answer = "ergeb";
erg.setText(answer);
}
}
private GridBagConstraints makegbc(int x, int y, int width, int height)
{
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.insets = new Insets(1, 1, 1, 1);
return gbc;
}
}