-
Kulek
Mam problem z ograniczeniem ilosci cyfr wpisywanych jako skladowa1 i skladowa2 oraz z wyswietlaniem wyniku, tak zeby calosc miescila sie bez zmiany wielkosci.
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Kalkulator
{
public static void main (String[] args)
{
RamkaKalkulatora ramka = new RamkaKalkulatora();
ramka.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
ramka.show();
}
}
class RoundButton extends JButton {
public RoundButton(String label) {
super(label);
Dimension size = getPreferredSize();
size.width = size.height = Math.max(size.width, size.height);
setPreferredSize(size);
setContentAreaFilled(false);
}
-
Kulek
protected void paintComponent(Graphics g) {
if (getModel().isArmed()) {
g.setColor(Color.RED);
} else {
g.setColor(Color.white);//getB ackground());
}
g.fillRoundRect(1, 1, getSize().width-2 , getSize().height-2,(int)getSiz e().width/3,(int)getSize().hei ght/3);
super.paintComponent(g);
}
protected void paintBorder(Graphics g) {
g.setColor(getForeground());
g.drawRoundRect(1, 1, getSize().width-2, getSize().height-2,
(int)getSize().width/3,(int)ge tSize().height/3);
}
Shape shape;
public boolean contains(int x, int y) {
if (shape == null || !shape.getBounds().equals(getB ounds())) {
shape = new RoundRectangle2D.Float(0, 0, getWidth(), getHeight(),
(int)getSize().width/3,(int)ge tSize().height/3);
}
return shape.contains(x, y);
}
}
class RamkaKalkulatora extends JFrame
{
public RamkaKalkulatora()
{
setTitle("Kalkulator");
setSize(SZEROKOSC,WYSOKOSC);
setResizable(false);
int left = (int)(Toolkit.getDefaultToolki t().getScreenSize().getWidth() - SZEROKOSC)/2;
int top = (int)(Toolkit.getDefaultToolki t().getScreenSize().getHeight( ) - WYSOKOSC)/2;
this.setLocation(left,top);
Container powierzchnia = getContentPane();
poleSkladowej1 = new JTextField("",5);
poleSkladowej1.setEditable(fal se);
poleSkladowej2 = new JTextField("",5);
poleSkladowej2.setEditable(fal se);
poleWyniku = new JTextField("",5);
poleWyniku.setEditable(false);
label = new JLabel(" ");
label1 = new JLabel("=");
panelWyniku = new JPanel();
panelWyniku.add(poleSkladowej1 );
panelWyniku.add(label);
panelWyniku.add(poleSkladowej2 );
panelWyniku.add(label1);
panelWyniku.add(poleWyniku);
GridBagLayout g = new GridBagLayout();
panelWyniku.setLayout(g);
powierzchnia.add(panelWyniku, BorderLayout.NORTH);
panelNumeryczny = new JPanel();
panelNumeryczny.setLayout(new GridLayout(4,3));
powierzchnia.add(panelNumerycz ny, BorderLayout.WEST);
-
Kulek
RoundButton[] guzik = new RoundButton[10];
for(int i=1; i<10; i++)
{
guzik = new RoundButton("" + i);
panelNumeryczny.add(guzik);
guzik.addActionListener(aCy fra);
}
g1 = new RoundButton("C");
panelNumeryczny.add(g1);
g1.addActionListener(aSymbol);
g2 = new RoundButton("0");
g2.addActionListener(aCyfra);
panelNumeryczny.add(g2);
g3 = new RoundButton(".");
panelNumeryczny.add(g3);
g3.addActionListener(aSymbol);
panelPolecen = new JPanel();
panelPolecen.setLayout(new GridLayout(5,1));
powierzchnia.add(panelPolecen, java.awt.BorderLayout.EAST);
p1 = new RoundButton("+");
panelPolecen.add(p1);
p1.addActionListener(aPoleceni e);
p2 = new RoundButton("-");
panelPolecen.add(p2);
p2.addActionListener(aPoleceni e);
p3 = new RoundButton("*");
panelPolecen.add(p3);
p3.addActionListener(aPoleceni e);
p4 = new RoundButton("/");
panelPolecen.add(p4);
p4.addActionListener(aPoleceni e);
p5 = new RoundButton("=");
panelPolecen.add(p5);
p5.addActionListener(aWynik);
poleSkladowej=poleSkladowej1;
}
private ActionListener aCyfra= new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String name=((RoundButton)e.getSource ()).getText();
poleSkladowej.setText(poleSkla dowej.getText() + name);
}
};
private ActionListener aPolecenie= new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String name=((RoundButton)e.getSource ()).getText();
label.setText(name);
if(poleSkladowej1.getText()!=" ")
poleSkladowej=poleSkladowej2;
}
};
private ActionListener aSymbol= new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(((RoundButton)e.getSource() ).getText()==".")
poleSkladowej.setText(poleSkla dowej.getText() + ".");
if(((RoundButton)e.getSource() ).getText()=="C")
wyzeruj();
}
};
private ActionListener aWynik= new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
i = Double.parseDouble(poleSkladow ej1.getText());
j = Double.parseDouble(poleSkladow ej2.getText());
oblicz();
poleWyniku.setText("" + wynik);
}
};
public void oblicz()
{
if(label.getText()=="+")
wynik=i+j;
else if(label.getText()=="-")
wynik=i-j;
else if(label.getText()=="*")
wynik=i*j;
else if(label.getText()=="/")
wynik=i/j;
}
public void wyzeruj()
{
poleWyniku.setText("");
poleSkladowej1.setText("");
poleSkladowej2.setText("");
label.setText(" ");
poleSkladowej=poleSkladowej1;
}
private final int SZEROKOSC = 250;
private final int WYSOKOSC = 200;
private JTextField poleSkladowej, poleSkladowej1, poleSkladowej2, poleWyniku;
private JPanel panelNumeryczny, panelWyniku, panelPolecen;
private RoundButton guzik, g1, g2, g3, p1, p2, p3, p4, p5;
private JLabel label,label1;
private double i,j, wynik;
} -
Anonim
-
-
Ja nie istnieje (FURBY)
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

