MessageBox Position Verändern

BlonderEngel

Mitglied
hallo,

ich habe für die Uni einen Taschenrechner Programmieren dürfen, soweit läuft der auch ohne Probleme.

Nur soll bei ungültigen Eingaben eine MessageBox angezeigt werden (das klppt auch ohne Probleme), aber mir gefällt die Position der MessageBox nicht, denn diese wird immer mittig auf dem Bildschirm ausgegeben.

Wie kann ich das genau ändern? Habe im Netz schon nach Lösungen gesucht aber anscheinend ist das nicht ganz so einfach.

Würde mich über Anregungen und Vorschläge freuen.

lg Yvonne
 

Fab1

Top Contributor
Was meinst du genau mit MessageBox? Eine JOptionPane? Falls ja, kann man bei dieser die Position relativ zu anderen Komponenten setzen. Bzw "null" für mittig auf den Bildschirm.
 

BlonderEngel

Mitglied
ja meine ein JOptionPane.

Dann Versuche ich das noch mal, denn das hatte ich zwar schon versuch aber da ging es nicht.
Aber vielleicht hatte ich auch nen Fehler drinen.

Schon mal danke für die antwort.

lg Yvonne
 

BlonderEngel

Mitglied
ich habe das jetzt mal versucht:
hier mal mein gesammter Code:
Java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

/**
 * This is a simple calculator for basic arithmetic operations
 * 
 * @author yvonne
 * 
 */

public class Taschenrechner extends JFrame
{
	/**
	 * Create new Frame, set visible, set close Operation
	 * 
	 * @param args
	 */

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

class TaschenrechnerFrame extends JFrame
{
	/**
	 * Create new Panel, set Title, add the panel to Frame, pack create it to a
	 * preferred size that Buttons are shown in the Frame
	 */

	public TaschenrechnerFrame()
	{
		setTitle("Calculator");
		TaschenrechnerPanel panel = new TaschenrechnerPanel();
		add(panel);
		pack();
	}
}

class TaschenrechnerPanel extends JPanel
{
	JButton display;
	JPanel panel;
	double result;
	String lastCommand;
	boolean start;

	/**
	 * Set Start as True, create new JOptionPane, Create new Button Display with
	 * BoderLayout add the Buttons with numbers and commands Set PanelLayout
	 * 
	 */

	public TaschenrechnerPanel()
	{

		setLayout(new BorderLayout());

		lastCommand = "=";
		start = true;

		JOptionPane warnung = new JOptionPane();
		warnung.setLocation(500,500);

		display = new JButton(" ");
		display.setEnabled(false);
		add(display, BorderLayout.NORTH);

		ActionListener zahlen = new ZahlenAction();
		ActionListener rechenzeichen = new RechenzeichenAction();

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

		addButton("7", zahlen);
		addButton("8", zahlen);
		addButton("9", zahlen);
		addButton("/", rechenzeichen);

		addButton("4", zahlen);
		addButton("5", zahlen);
		addButton("6", zahlen);
		addButton("*", rechenzeichen);

		addButton("1", zahlen);
		addButton("2", zahlen);
		addButton("3", zahlen);
		addButton("-", rechenzeichen);

		addButton("0", zahlen);
		addButton(".", zahlen);
		addButton("=", rechenzeichen);
		addButton("+", rechenzeichen);

		add(panel, BorderLayout.CENTER);
	}

	/**
	 * Create new Buttons with label add ActionListener to JButtons
	 * 
	 * @param label
	 * @param listener
	 */

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

	private class ZahlenAction implements ActionListener
	{

		/**
		 * Set the text in disply
		 */

		public void actionPerformed(ActionEvent event)
		{
			String input = event.getActionCommand();
			
			if (display.getText().contains(".") && input.contains("."))
			{
				JOptionPane.showMessageDialog(null, "Ungültige Eingabe", "Warnung", JOptionPane.ERROR_MESSAGE);
				return;
			}

			if (start)
			{

				display.setText("");
				start = false;
			}

			display.setText(display.getText() + input);
		}
	}

	private class RechenzeichenAction implements ActionListener
	{

		/**
		 * if the fist input was a - set a negativ number when the first command
		 * was a other command they show an warning box is access the method
		 * calculate
		 */

		public void actionPerformed(ActionEvent event)
		{
			String command = event.getActionCommand();

			if (start)
			{
				if (command.equals("-"))
				{
					display.setText(command);
					start = false;
				} else
				{
					lastCommand = command;
					JOptionPane.showMessageDialog(null, "Ungültige Eingabe", "Warnung", JOptionPane.ERROR_MESSAGE);
					return;
				}
			} else
			{
				calculate(Double.parseDouble(display.getText()));
				lastCommand = command;
				start = true;
			}
		}
	}

	/**
	 * this methode act the calculations with chosen commands and set the text
	 * 
	 * @param x
	 */

	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);
	}
}

Denn leider geht es nicht, weder mit setLocation(int x, int y)
noch mit setLocation(point p).

lg Yvonne
 

Fab1

Top Contributor
Java:
 JOptionPane.showMessageDialog(null, "Ungültige Eingabe", "Warnung", JOptionPane.ERROR_MESSAGE);

Wenn du statt "null" hier eine Komponente einfügst, dann wird die Position relativer zu der, der Komponente gesetzt. (hoffe ich zumindest) Kann gerade nichts testen. :)
 

bERt0r

Top Contributor
Anstelle von null solltest du den Frame eintragen, von wo du die MessageBox aufrufst. Dann platziert Java automatisch die Box in die mitte dieses Fensters.
Anstelle des Frames geht aber auch irgendein anderer JComponent.
 

Fab1

Top Contributor
Anstelle von null solltest du den Frame eintragen, von wo du die MessageBox aufrufst. Dann platziert Java automatisch die Box in die mitte dieses Fensters.
Anstelle des Frames geht aber auch irgendein anderer JComponent.

Gleiches war doch auch meine Aussage oder bin ich jetzt komplett durch den Wind???:L
Na gut egal, Hauptsache es geht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B SWT Progress-MessageBox AWT, Swing, JavaFX & SWT 2
E Messagebox mit Fortschrittsbalken und Extras AWT, Swing, JavaFX & SWT 2
L Schicke messagebox! AWT, Swing, JavaFX & SWT 3
G SWT MessageBox AWT, Swing, JavaFX & SWT 2
T MessageBox schließt nicht ganz AWT, Swing, JavaFX & SWT 9
Z MessageBox ohne Shell öffnen - SWT AWT, Swing, JavaFX & SWT 7
N javafx Position der Bustaben finden label AWT, Swing, JavaFX & SWT 1
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
S GUI Kreuz zeichnen und Position ausgeben AWT, Swing, JavaFX & SWT 3
C JavaFX Window-Position AWT, Swing, JavaFX & SWT 3
E JavaFX Cursor-Position im ScrollPane AWT, Swing, JavaFX & SWT 0
J BorderPane Position AWT, Swing, JavaFX & SWT 3
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
A Swing JFrame neuzeichnen lassen, position neu berechnen lassen? AWT, Swing, JavaFX & SWT 9
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
F JavaFX Position von Image angeben/verändern AWT, Swing, JavaFX & SWT 2
F JScrollPane Position setzen (x=0, y=0) AWT, Swing, JavaFX & SWT 2
H Position eines JLabel in einem JPanel AWT, Swing, JavaFX & SWT 2
T SWT Wie kriege ich die Position des Textfeldes raus? AWT, Swing, JavaFX & SWT 19
C LayoutManager JFrame größe und ausrichtung + Position von Fensterelementen AWT, Swing, JavaFX & SWT 2
B Popup auf der Textcoursor-Position AWT, Swing, JavaFX & SWT 5
O Swing Spalten-Position nach verschieben AWT, Swing, JavaFX & SWT 6
0 Swing JTextField - Position ? AWT, Swing, JavaFX & SWT 2
E Swing Objekt zu Position (Point) bewegen AWT, Swing, JavaFX & SWT 2
C Label wird nicht an der richtigen Position angezeigt.. AWT, Swing, JavaFX & SWT 7
TheWhiteShadow Swing Document Text Position in Pixel AWT, Swing, JavaFX & SWT 2
M Jtable - wie position einer Celle bestimmen bei Multiselect AWT, Swing, JavaFX & SWT 4
B Swing Komponente an Position eines Objektes ausgeben lassen AWT, Swing, JavaFX & SWT 3
B Position in einem Bild ermitteln AWT, Swing, JavaFX & SWT 3
B [ERLEDIGT]gui problem(genaue position von buttons ect.) AWT, Swing, JavaFX & SWT 9
M Position eines JLabels mit getX() auslesen AWT, Swing, JavaFX & SWT 2
M Position eines JLabels speichern? AWT, Swing, JavaFX & SWT 3
D Swing PopupMenu immer an gewünschte Position? AWT, Swing, JavaFX & SWT 2
W Swing Bild zeichnen wenn Maus an bestimmter Position ist AWT, Swing, JavaFX & SWT 4
R Swing GlazedLists UND Problem mit der Position des Cursors AWT, Swing, JavaFX & SWT 2
M 3D-Grafik Probleme mit Position der ViewPlatform AWT, Swing, JavaFX & SWT 4
C Caret Position mit X-Y-Koordinaten ermitteln AWT, Swing, JavaFX & SWT 2
J Swing Problem - Abspeichern JSplitPane Position AWT, Swing, JavaFX & SWT 5
E Swing Runde Buttons / Position eines Obj. im Layout AWT, Swing, JavaFX & SWT 7
S Feste Position einer Komponente auf Glasspane AWT, Swing, JavaFX & SWT 6
V Position der JScrollBar ändern AWT, Swing, JavaFX & SWT 5
T Z-Position der ViewPlatform? AWT, Swing, JavaFX & SWT 3
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
B aktuelle Position des Fensters ermitteln AWT, Swing, JavaFX & SWT 3
sylo Position des Icons bei JMenuItem AWT, Swing, JavaFX & SWT 11
H Y-Position mit get-/setLocation() unter Linux/Enlightement16 inkonsistent AWT, Swing, JavaFX & SWT 3
K JLayeredPane Elemente auf gleicher Position AWT, Swing, JavaFX & SWT 7
E Swing JLabel ändert seine Position nach setText AWT, Swing, JavaFX & SWT 2
G Absolute Position von Komponenten AWT, Swing, JavaFX & SWT 3
hdi SWT FileDialog wird an scheinbar beliebiger Position angezeigt AWT, Swing, JavaFX & SWT 2
K mehrere JTextFields - wie finde ich die Cursor-Position? AWT, Swing, JavaFX & SWT 5
lumo SWT Absolute position einer Composite/Control AWT, Swing, JavaFX & SWT 5
ElViZ End-Position eines gezeichneten Strings ermitteln. AWT, Swing, JavaFX & SWT 2
H Swing Illegal component position! AWT, Swing, JavaFX & SWT 2
Pithecanthropus Swing JScrollBar-Position festlegen.. AWT, Swing, JavaFX & SWT 3
K Postion Y im Frame != Position Y ?? AWT, Swing, JavaFX & SWT 16
R Position einer Componente? AWT, Swing, JavaFX & SWT 9
A Label hat falsche Position AWT, Swing, JavaFX & SWT 4
M Scrollbar anpassen (Position) AWT, Swing, JavaFX & SWT 6
M GridBagLayout - Position immer zentriert AWT, Swing, JavaFX & SWT 5
J absolute Position einer JComponent ermitteln AWT, Swing, JavaFX & SWT 4
J JSplitpane separator soll nicht seine Position veraendern? AWT, Swing, JavaFX & SWT 3
P JButton Position rausfinden beim GridBagLayout AWT, Swing, JavaFX & SWT 2
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
X Dynamische linien (Position und Länge) AWT, Swing, JavaFX & SWT 4
G position im FlowLayout AWT, Swing, JavaFX & SWT 11
B Thumbnail-Position per Mausklick ändern AWT, Swing, JavaFX & SWT 3
& Position eines Fensters nicht verändern AWT, Swing, JavaFX & SWT 8
A Position des Fensters verändern AWT, Swing, JavaFX & SWT 21
U JTable Position der Spalte abfragen AWT, Swing, JavaFX & SWT 7
D JInternalFrame iconified Position nach parent-resize AWT, Swing, JavaFX & SWT 2
U Problem mit JButton (Position & Größe) AWT, Swing, JavaFX & SWT 7
W Schnappen der Größe und Position AWT, Swing, JavaFX & SWT 7
S Falsche Position, Elemente erscheinen nicht, Flackern AWT, Swing, JavaFX & SWT 6
S Position eines Fensters festlegen AWT, Swing, JavaFX & SWT 2
L Menu Position verändern? AWT, Swing, JavaFX & SWT 24
P JPanel im BorderLayout feste Größe/Position zuordnen AWT, Swing, JavaFX & SWT 3
T jTable / Spaltenbreite und Position AWT, Swing, JavaFX & SWT 2
J InternalFrames Grösse Position AWT, Swing, JavaFX & SWT 3
vogella JScrollPane - Position setzen der Scrollbalken AWT, Swing, JavaFX & SWT 5
M JPanel Position tut nicht, was sie soll AWT, Swing, JavaFX & SWT 8
T jTable Colum feste position AWT, Swing, JavaFX & SWT 3
S Position von Labels, Buttons, etc. festsetzen und Scrollen AWT, Swing, JavaFX & SWT 4
M GridBagLayout - Component Position AWT, Swing, JavaFX & SWT 4
B Setzen von Position > 90 bei JScrollbar nicht möglich AWT, Swing, JavaFX & SWT 3
M Position im JTree veraendern AWT, Swing, JavaFX & SWT 3
A Position im Text bei Rechtsklick AWT, Swing, JavaFX & SWT 7
T JScrollPane Scrollbar-Position AWT, Swing, JavaFX & SWT 2
Y BasicArrowButton + Größe und Position AWT, Swing, JavaFX & SWT 7
K Mouse Position nach Drag und Drop? AWT, Swing, JavaFX & SWT 4
lin ?JDialog?-nur best. Grösse und Position AWT, Swing, JavaFX & SWT 2
B JLabel ändert seine Position AWT, Swing, JavaFX & SWT 7
M Position von Eingabe-Fenster AWT, Swing, JavaFX & SWT 5
R text offset versus JTextComponent caret position AWT, Swing, JavaFX & SWT 6
G Probleme mit der Position eines JPanels AWT, Swing, JavaFX & SWT 2
T Größe und Position eines JLabels ermitteln AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
H JItem während der Programmlaufzeit verändern AWT, Swing, JavaFX & SWT 8
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben