Cześć wszystkim,
Jeśli podobny temat już istnieje, to bardzo przepraszam, musiałem przeoczyć ;/
Tworzę aktualnie w Java Swing. Chcę stworzyć kalkulator. Moją zagwozdką, problemem na ten moment jest pomysł na dokonywanie operacji obliczeń oraz wyświetlanie działań.
Przyciski 0-9 działają poprawnie. Więc przeszedłem do przycisku + oraz =. Chciałbym aby po wciśnięciu przycisku "+" dana liczba która jest wpisana w JTextField pozostała na miejscu razem ze znakiem plusa, a nastepna liczba zaczynała się w nowej linii. Jednak chyba TextField nie obsługuje \n lub ogólnie znaku nowej linii, więc nie mogę wyświetlić tego tak jakbym chciał.
Jeśli niezbyt zrozumiale się wyraziłem to przepraszam.
Mój kod:
package com.company;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.util.Date;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class Main extends JFrame implements ActionListener {
//deklaracja wszystkich buttonow i pol
private JButton button_0;
private JButton button_1;
private JButton button_2;
private JButton button_3;
private JButton button_4;
private JButton button_5;
private JButton button_6;
private JButton button_7;
private JButton button_8;
private JButton button_9;
private JButton button_add;
private JButton button_sub;
private JButton button_dziel;
private JButton button_mno;
private JButton button_clear;
private JButton button_row;
private JTextField tekst;
//deklaracja zmiennych
String wyswietlacz;
double number1,number2,wynik;
String action;
public Main(){
//tworzenie buttonow i wszystkich pol
button_0=new JButton("0");
button_1=new JButton("1");
button_2=new JButton("2");
button_3=new JButton("3");
button_4=new JButton("4");
button_5=new JButton("5");
button_6=new JButton("6");
button_7=new JButton("7");
button_8=new JButton("8");
button_9=new JButton("9");
button_add=new JButton("+");
button_sub=new JButton("-");
button_dziel=new JButton("/");
button_mno=new JButton("*");
button_clear=new JButton("C");
button_row=new JButton("=");
tekst=new JTextField("");
//button1
button_1.setBounds(20,110,80,40);
button_1.addActionListener(this);
add(button_1);
//button2
button_2.setBounds(120,110,80,40);
button_2.addActionListener(this);
add(button_2);
//button3
button_3.setBounds(220,110,80,40);
button_3.addActionListener(this);
add(button_3);
//button4
button_4.setBounds(20,180,80,40);
button_4.addActionListener(this);
add(button_4);
//button5
button_5.setBounds(120,180,80,40);
button_5.addActionListener(this);
add(button_5);
//button6
button_6.setBounds(220,180,80,40);
button_6.addActionListener(this);
add(button_6);
//button7
button_7.setBounds(20,250,80,40);
button_7.addActionListener(this);
add(button_7);
//button8
button_8.setBounds(120,250,80,40);
button_8.addActionListener(this);
add(button_8);
//button9
button_9.setBounds(220,250,80,40);
button_9.addActionListener(this);
add(button_9);
//button0
button_0.setBounds(120,320,80,40);
button_0.addActionListener(this);
add(button_0);
//button +
button_add.setBounds(330,10,50,50);
button_add.addActionListener(this);
add(button_add);
//button -
button_sub.setBounds(400,10,50,50);
add(button_sub);
//button *
button_mno.setBounds(330,70,50,50);
add(button_mno);
//button /
button_dziel.setBounds(400,70,50,50);
add(button_dziel);
//button clear
button_clear.setBounds(330,130,50,50);
add(button_clear);
//button =
button_row.setBounds(400,130,50,50);
button_row.addActionListener(this);
add(button_row);
//pole tekstu
tekst.setLocation(20,10);
tekst.setSize(280,100);
tekst.setHorizontalAlignment(JTextField.RIGHT);
tekst.setFont(new Font("Courier New",Font.ITALIC,20));
add(tekst);
}
public static void main(String[] args) {
Main okno = new Main();
okno.setSize(500,410);
okno.setLayout(null);
okno.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
okno.setTitle("Calculate");
okno.setVisible(true);
}
//co sie dzieje po wcisnieciu buttona
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if (source==button_0)
{
wyswietlacz=tekst.getText()+"0";
tekst.setText(wyswietlacz);
}
else if (source==button_1)
{
wyswietlacz=tekst.getText()+"1";
tekst.setText(wyswietlacz);
}
else if (source==button_2)
{
wyswietlacz=tekst.getText()+"2";
tekst.setText(wyswietlacz);
}
else if (source==button_3)
{
wyswietlacz=tekst.getText()+"3";
tekst.setText(wyswietlacz);
}
else if (source==button_4)
{
wyswietlacz=tekst.getText()+"4";
tekst.setText(wyswietlacz);
}
else if (source==button_5)
{
wyswietlacz=tekst.getText()+"5";
tekst.setText(wyswietlacz);
}
else if (source==button_6)
{
wyswietlacz=tekst.getText()+"6";
tekst.setText(wyswietlacz);
}
else if (source==button_7)
{
wyswietlacz=tekst.getText()+"7";
tekst.setText(wyswietlacz);
}
else if (source==button_8)
{
wyswietlacz=tekst.getText()+"8";
tekst.setText(wyswietlacz);
}
else if (source==button_9)
{
wyswietlacz=tekst.getText()+"9";
tekst.setText(wyswietlacz);
}
else if (source==button_add)
{
wyswietlacz=tekst.getText();
number1=Double.parseDouble(wyswietlacz);
tekst.setText("");
action="add";
}
if (source==button_row)
{
wyswietlacz=tekst.getText();
number2=Double.parseDouble(wyswietlacz);
switch(action)
{
case "add":
wynik=number1+number2;
tekst.setText(String.valueOf(number1)+ " + " + String.valueOf(number2)+ " = " + String.valueOf(wynik));
break;
default:
break;
}
}
}
}