Witam.
Raczkuje w tematyce Javy. Generalnie ucze sie od 2 dni i powiłem wlasna pierwsza mini aplikacje: Kalkulator. Mam jednak problem gdyz pola kalkulatora sa nie widoczne. dopiero po zaznaczzeniu ich np. ( tab-em) staja sie widoczne.
Wiecej pewnie rozjasni sie po wklejeniu kodu
<code-java> import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*;public class Kalkulator extends JFrame implements ActionListener
{
JLabel label1, label2;
JButton plus,minus,razy,podziel,ce,koniec;
JTextField pole1,pole2,pole3;
Font czcionka1;
public Kalkulator()
{
super("Kalkulator by JR");
setSize(200,290);
setVisible(true);
Container kontener = getContentPane();
kontener.setBackground(Color.white);
kontener.setLayout(null);
czcionka1 = new Font("Arial",Font.BOLD,16);
label1 = new JLabel("suma:");
label1.setFont(czcionka1);
label1.setBounds(20,55,100,20);
kontener.add(label1);
label2 = new JLabel("");
label2.setBounds(55,55,80,20);
kontener.add(label2);
pole2 = new JTextField();
pole2.setBounds(55,110,100,30);
kontener.add(pole2);
pole1 = new JTextField("0");
pole1.setBounds(55,50,100,30);
kontener.add(pole1);
plus = new JButton("+");
plus.setFont(czcionka1);
plus.setBounds(2,150,42,42);
kontener.add(plus);
plus.addActionListener(this);
minus = new JButton("-");
minus.setBounds(45,150,42,42);
minus.setFont(czcionka1);
kontener.add(minus);
minus.addActionListener(this);
razy = new JButton("*");
razy.setBounds(98,150,42,42);
razy.setFont(czcionka1);
kontener.add(razy);
razy.addActionListener(this);
podziel = new JButton("/");
podziel.setBounds(141,150,42,42);
podziel.setFont(czcionka1);
kontener.add(podziel);
podziel.addActionListener(this);
ce = new JButton("CE");
ce.setBounds(80,220,40,20);
kontener.add(ce);
ce.addActionListener(this);
koniec = new JButton("koniec");
koniec.setBounds(110,220,60,40);
kontener.add(koniec);
koniec.addActionListener(this);
}
public void dodaj() {
String pierwsza = pole2.getText();
double jeden = Double.parseDouble(pierwsza);
String druga = pole1.getText();
double dwa = Double.parseDouble(druga);
double wynik = jeden + dwa;
String wynik2 = String.valueOf(wynik);
pole1.setText(wynik2);
pole2.setText("");
}
public void ce() {
pole1.setText("");
pole2.setText("");
}
public void razy() {
String pierwsza = pole2.getText();
String druga = pole1.getText();
double jeden = Double.parseDouble(pierwsza);
double dwa = Double.parseDouble(druga);
double wynik = jeden * dwa;
String wynik2 = String.valueOf(wynik);
pole1.setText(wynik2);
pole2.setText("");
}
public void podziel() {
String pierwsza = pole1.getText();
String druga = pole2.getText();
double jeden = Double.parseDouble(pierwsza);
double dwa = Double.parseDouble(druga);
double wynik = jeden / dwa;
String wynik2 = String.valueOf(wynik);
pole1.setText(wynik2);
pole2.setText("");
}
public void minus () {
String pierwsza = pole1.getText();
String druga = pole2.getText();
double jeden = Double.parseDouble(pierwsza);
double dwa = Double.parseDouble(druga);
double wynik = jeden - dwa;
String wynik2 = String.valueOf(wynik);
pole1.setText(wynik2);
pole2.setText("");
}
public void koniec() {
System.exit(1);
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == plus)
{
dodaj();
}
else if (e.getSource()== minus)
{
minus();
}
else if (e.getSource()== razy)
{
razy();
}
else if (e.getSource()== podziel)
{
podziel();
}
else if (e.getSource() == ce)
{
ce();
}
else if (e.getSource() == koniec)
{
koniec();
}
}
public static void main(String args[])
{
new Kalkulator();
}
}
Gdy uruchomia aplikacja wyglada tak:
![user image](http://przepisuj.waw.pl/kalk0.JPG)
lub tak :
![user image](http://przepisuj.waw.pl/kalk01.JPG)
po aktywowaniu (kliknieciu) na niewidoczne pola tekstowe:
![user image](http://przepisuj.waw.pl/kalk1.JPG)
i po przejechaniu myszka nad buttonami:
![user image](http://przepisuj.waw.pl/kalk3.JPG)
Cemu tak sie dzieje? Jak ustawic aby wszystkie elementy byly widoczne?
Dodatkowo ma jeszcze 2 pytania:
-jak zrobic aby tekst na przycisku zajmowal cala mozliwa powierzchnie (zlikwidowac ewnetrzne marginesy?)---zamiast "..." na pierwszym przycisku powinien wyswietlac sie "+" ale widac nie miesci sie :/
-jak ustawic aby pole1 bylo polem nie aktywnym?
Wiem ze rozwiazanie znajde w manualu ale jeszcze nie do konca opanowalm poruszanie sie po nim.