Programm benötigt letzten Feinschliff.... ;)

Status
Nicht offen für weitere Antworten.

Javamanni

Mitglied
Hi Leute....
Ich hab jetzt einen Taschenrechner, der folgendermaßen aussieht:

8pgq-4.jpg


Das ist ja schön und gut, aber jetz wollte ich euch fragen, wie ich die vier "="-Tasten rechts unten in eine große "="-Taste umwandeln kann.
Also das ganze sollte dann ungefähr so aussehen:

8pgq-5.jpg


Kann mir jemand helfen?
Das hier ist ein Auszug von meinem Quellcode:
Java:
class TaschenrechnerPanel extends JPanel
{
   public TaschenrechnerPanel()
   {

      setLayout(new BorderLayout());
      result = 0;
      lastCommand = "=";
      start = true;

      display = new JButton("Willkommen!");
      display.setEnabled(false);
      add(display, BorderLayout.NORTH);
      ActionListener insert = new InsertAction();
      ActionListener command = new CommandAction();

      panel = new JPanel();
      panel.setLayout(new GridLayout(4, 5));

      addButton("7", insert);
      addButton("8", insert);
      addButton("9", insert);
      addButton("+", command);
      addButton("*", command);

      addButton("4", insert);
      addButton("5", insert);
      addButton("6", insert);
      addButton("-", command);
      addButton("/", command);

      addButton("1", insert);
      addButton("2", insert);
      addButton("3", insert);
      addButton("=", command);
      addButton("=", command);

      addButton("0", insert);
      addButton(".", insert);
      addButton("+/-", command);
      addButton("=", command);
      addButton("=", command);

      add(panel, BorderLayout.CENTER);
   }
}

Bitte meldet euch mal. Ich danke euch!!! ;)
 
Zuletzt bearbeitet:

Schandro

Top Contributor
du musst mehrere JPanels benutzen.
Das hautpanel müsste dann z.b. mit dem GridBagLayout die 3 unterpanels zussamenführen.
 

tfa

Top Contributor
Hier könnte ein TableLayout ganz hilfreich sein (oder auch GridBagLayout, falls du dich auf die Standard-LayoutManager beschränken willst).
 

Javamanni

Mitglied
naja, des war jetz a nur a auszug aus dem quellcode....
hier mal alles:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Taschenrechner
{
   public static void main(String[] args)
   {
      TaschenrechnerFrame frame = new TaschenrechnerFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
   }
}

class TaschenrechnerFrame extends JFrame
{
   public TaschenrechnerFrame()
   {
      setTitle("Taschenrechner");
      setLocation(250, 250);
      TaschenrechnerPanel panel = new TaschenrechnerPanel();
      add(panel);
      pack();
   }
}

class TaschenrechnerPanel extends JPanel
{
   public TaschenrechnerPanel()
   {

      setLayout(new BorderLayout());
      result = 0;
      lastCommand = "=";
      start = true;

      display = new JButton("Willkommen!");
      display.setEnabled(false);
      add(display, BorderLayout.NORTH);
      ActionListener insert = new InsertAction();
      ActionListener command = new CommandAction();

      panel = new JPanel();
      panel.setLayout(new GridLayout(4, 5));

      addButton("7", insert);
      addButton("8", insert);
      addButton("9", insert);
      addButton("+", command);
      addButton("x", command);

      addButton("4", insert);
      addButton("5", insert);
      addButton("6", insert);
      addButton("-", command);
      addButton("/", command);

      addButton("1", insert);
      addButton("2", insert);
      addButton("3", insert);
      addButton("=", command);
      addButton("=", command);

      addButton("0", insert);
      addButton(".", insert);
      addButton("+/-", command);
      addButton("=", command);
      addButton("=", command);

      add(panel, BorderLayout.CENTER);
   }

   private void addButton(String label, ActionListener listener)
   {
      JButton button = new JButton(label);
      button.addActionListener(listener);
      panel.add(button);
   }

   private class InsertAction implements ActionListener
   {
      public void actionPerformed(ActionEvent event)
      {
         String input = event.getActionCommand();
         if (start)
         {
            display.setText("");
            start = false;
         }
         display.setText(display.getText() + input);
      }
   }

   private class CommandAction implements ActionListener
   {
      public void actionPerformed(ActionEvent event)
      {
         String command = event.getActionCommand();

         if (start)
         {
            if (command.equals("-"))
            {
               display.setText(command);
               start = false;
            }
            else
               lastCommand = command;
         }
         else
         {
            calculate(Double.parseDouble(display.getText()));
            lastCommand = command;
            start = true;
         }
      }
   }

   public void calculate(double x)
   {
      if (lastCommand.equals("+")) result += x;
      else
          if (lastCommand.equals("-")) result -= x;
          else
              if (lastCommand.equals("*")) result *= x;
              else
                  if (lastCommand.equals("/")) result /= x;
                  else
                      if (lastCommand.equals("=")) result = x;
      display.setText("" + result);
   }

   private JButton display;
   private JPanel panel;
   private double result;
   private String lastCommand;
   private boolean start;
}


Ich bin net so wirklich der java-pro und hab deswegen recht wenig ahnung...... :(
 

Javamanni

Mitglied
Ok, des hat sich jetzt erledigt... Ich hab des anders gemacht... :D
Aber jetz hab ich die Frage, wie ich einen Button mit Farbe hinterlegen kann....
Weiß des jemand? DANKE!!!
 
Zuletzt bearbeitet:

0001001

Bekanntes Mitglied
Wie du den ANS Knopf machst denk ich ist klar :p
Für die Funktion dahinter würde ich einfach ne zusätzliche Variable anlegen. Sobald die = Taste gedrückt wurde, speicherst du in diese Variable das Ergebnis.
Drückt der Anwender dann die ANS Taste, so lädst du den Wert wieder aus der Variable.
 

Schandro

Top Contributor
lass doch die addButton Methode den grade erstellten Button zurückgeben. Die meisten Aufrufe benutzen den Rückgabewert einfach nicht (du brauchst also bei denen absolut nichts ändern).

Wo du die Farbe ändern willst, kannst du den gerade geaddeten Button dann noch weiter konfigurieren.

2. Option: Die erweiterst (oder überlagerst) die Methode addButton um einen parameter backgroundColor vom Typ Color.
 

0001001

Bekanntes Mitglied
Was Schandro meint:
Code:
   private JButton addButton(String label, ActionListener listener)
   {
      JButton button = new JButton(label);
      button.addActionListener(listener);
      panel.add(button);
      return button;
   }


...

JButton einButton = addButton("Blubb",insert);
einButton.setBackground(Color.GREEN);
 

Javamanni

Mitglied
Tann mir jemand sagen, wie ich die +/- Taste programmieren kann?
Also soweit bin ich:
Java:
if (lastCommand.equals("+")) result += x;
else
      if (lastCommand.equals("-")) result -= x;
      else
            if (lastCommand.equals("x")) result *= x;
            else
                   if (lastCommand.equals("/")) result /= x;
                   else
                         if (lastCommand.equals("=")) result = x;
                         else
                               if (lastCommand.equals("()^2")) result =(x*x);
                               else
                                      if (lastCommand.equals("+ / -")) result =(x*(-1));

Aber des geht nicht! Also wenn ich die +/- Taste drücke, springt er nicht von + nach - um oder andersrum....
 

Javamanni

Mitglied
hab ich oben aufn button jetzt auch geändert.

also der taschenrechner geht soweit komplett. aber wenn ich jetz wurzel aus 5 ziehen will (beispielsweise) dann muss ich drücken:
[sqrt] und dann [5]
wenn ich jetzt aber die 5 schon aufn display stehen hab, kann ich die [sqrt] taste drücken und es passiert nichts.
und des is derzeit noch mein problem... aber ich glaub da muss ich mit zwischenspeichern arbeiten, oder?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin starten maven javafx programm ohne netbeans AWT, Swing, JavaFX & SWT 38
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
G CAD Programm AWT, Swing, JavaFX & SWT 4
thor_norsk E - Mail Programm AWT, Swing, JavaFX & SWT 2
_user_q Über installDist exportiertes Programm wirft "Unsupported JavaFX configuration" AWT, Swing, JavaFX & SWT 0
CodingBerlin JavaFX Programm läuft nur unter Eclipse AWT, Swing, JavaFX & SWT 1
J Programm findet Resource nicht. AWT, Swing, JavaFX & SWT 6
N Programm Läuft nicht auf anderen Pcs AWT, Swing, JavaFX & SWT 9
imawake Java Paket-Tracking Programm 📦 AWT, Swing, JavaFX & SWT 7
S Lustiges programm schnell coden? AWT, Swing, JavaFX & SWT 2
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
M DragAndDrop - aus Browser ins Programm AWT, Swing, JavaFX & SWT 6
T Java GUI - Würfel Programm AWT, Swing, JavaFX & SWT 6
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
I Gui in bestehendes Java-Programm AWT, Swing, JavaFX & SWT 11
L JavaFX IntelliJ Standalone Programm exportieren AWT, Swing, JavaFX & SWT 9
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
M AWT Programm in den Tray minimieren AWT, Swing, JavaFX & SWT 2
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7
A Java Programm gestalten AWT, Swing, JavaFX & SWT 4
P Swing Warum startet das Programm nicht? AWT, Swing, JavaFX & SWT 3
J JavaFX Kamera im Programm öffnen AWT, Swing, JavaFX & SWT 6
H Hintergrundbild in einem Programm AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower progressBar in ein bestehendes Programm einbauen AWT, Swing, JavaFX & SWT 3
J Verbesserungsvorschläge?! Kleines AWT Programm AWT, Swing, JavaFX & SWT 4
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
G Zeichnen Programm AWT, Swing, JavaFX & SWT 1
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
Arif Swing Programm friert ein... AWT, Swing, JavaFX & SWT 2
apple_pie1998 Programm gibt plötzlich exceptions aus. AWT, Swing, JavaFX & SWT 4
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
T Swing Programm hängt sich auf! AWT, Swing, JavaFX & SWT 23
L Probleme mit Programm AWT, Swing, JavaFX & SWT 13
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
G Programm GUI erstellen AWT, Swing, JavaFX & SWT 5
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3
T Programm im METRO Design? AWT, Swing, JavaFX & SWT 1
J Programm hängt sich bei Log In auf AWT, Swing, JavaFX & SWT 1
C Programm mit Passwort schließen AWT, Swing, JavaFX & SWT 5
D Robot Programm mit Escape abbrechen (aus Eclipse heraus) AWT, Swing, JavaFX & SWT 2
N Programm läuft perfekt in Eclipse aber nicht in .JAR AWT, Swing, JavaFX & SWT 3
S JScrollPane --> Programm hängt sich beim scrollen auf AWT, Swing, JavaFX & SWT 2
J Programm im GUI ausführen AWT, Swing, JavaFX & SWT 4
A Probleme mit 2 JFrames in einem Programm AWT, Swing, JavaFX & SWT 7
S Event Handling konsole Programm mit Tastendruck beenden AWT, Swing, JavaFX & SWT 5
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
W Windows Fenster in einem Programm AWT, Swing, JavaFX & SWT 2
F Mal Programm AWT, Swing, JavaFX & SWT 13
C In Hauptfenster Programm-Klassen implementieren AWT, Swing, JavaFX & SWT 9
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
C Swing Wie kann ich im Programm das Menü schließen AWT, Swing, JavaFX & SWT 2
J SWING - Programm ohne Eclipse etc. starten AWT, Swing, JavaFX & SWT 7
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
M Programm hängt sich auf nachdem repaint() benutzt wurde AWT, Swing, JavaFX & SWT 2
M Programm in Jframe "einbinden" AWT, Swing, JavaFX & SWT 7
S Programm auf aktuellen Stand bringen AWT, Swing, JavaFX & SWT 2
Spin Tool: Popup -Programm AWT, Swing, JavaFX & SWT 3
GUI-Programmer Swing JWindow - Programm wird ohne Grund beendet AWT, Swing, JavaFX & SWT 3
E Kreis-Mal-Programm AWT, Swing, JavaFX & SWT 7
P Programm aktuallisiert sich nur beim Rüberzeigen AWT, Swing, JavaFX & SWT 6
T Java-Anwendung arbeitet Programm in seltsamer Reihenfolge ab AWT, Swing, JavaFX & SWT 3
C Programm für 5 sekunden anhalten und actionevent abfangen AWT, Swing, JavaFX & SWT 18
J Programm schließen AWT, Swing, JavaFX & SWT 4
J Programm nur einmal öffnen AWT, Swing, JavaFX & SWT 3
E Windows Kontext Menü - Laufendes Programm AWT, Swing, JavaFX & SWT 3
T Programm vom Desktop starten! AWT, Swing, JavaFX & SWT 2
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
M Browser in Programm einbinden AWT, Swing, JavaFX & SWT 4
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
H Userinput in GUI an externes Programm AWT, Swing, JavaFX & SWT 8
D Firefox aus Programm starten AWT, Swing, JavaFX & SWT 4
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
J SWT 32 bit Programm für 64 bit Jave AWT, Swing, JavaFX & SWT 10
R GUI hängt während Programm läuft AWT, Swing, JavaFX & SWT 7
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
H Infofenster vor dem eigentlichen Java Programm AWT, Swing, JavaFX & SWT 3
B Uberschrift in Swing-Programm zur Laufzeit aendern... AWT, Swing, JavaFX & SWT 4
C Swing Kleines Programm mit SWING unter Verwendung von MVC AWT, Swing, JavaFX & SWT 5
capgeti Wie Programm in JPanel (o.ä.) starten? AWT, Swing, JavaFX & SWT 3
B Externes Programm mit Robot Steuern AWT, Swing, JavaFX & SWT 3
G Programm läuft nur auf manchen Rechnern AWT, Swing, JavaFX & SWT 10
M SWT Programm pausiert ungewollt AWT, Swing, JavaFX & SWT 5
K Website in Java Programm einbinden AWT, Swing, JavaFX & SWT 3
B komplettes programm in einem fenster AWT, Swing, JavaFX & SWT 5
L Frage bei Programm mit Zufallskreisen AWT, Swing, JavaFX & SWT 9
L Programm terminated (zu frueh) AWT, Swing, JavaFX & SWT 3
T SplashScreen im laufenden Programm AWT, Swing, JavaFX & SWT 2
M Panelinhalt im Programm verändern AWT, Swing, JavaFX & SWT 12
R Programm nicht mehr in der Taskleiste AWT, Swing, JavaFX & SWT 2
3TageBart Ebenen in Zeichen-Programm implementieren AWT, Swing, JavaFX & SWT 9
H Swing HUD in externes Programm einblenden AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben