Erste Schritte Wieso funktioniert diese Klasse nicht

acine123

Mitglied
Hier wird setwindow(); rot untertrichen
Java:
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class Calculator {
	
	JTextField firstfield;
	JTextField secondfield;
	Dimension framesize = new Dimension(500, 250);
	JFrame window;

	public static void main(String[] args) {



			setwindow();
		}
		
		private  void setwindow(){
			window = new JFrame();
			window.setSize(framesize);
			window.setTitle("Taschenrechner");
			window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			rechnemitte();
			window.setVisible(true);

	}

	private void rechnemitte() {
		Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
		
		int framewidth = framesize.width;
		int frameheight = framesize.height;
		int screenwidth = screensize.width;
		int screenheight = screensize.height;

		int xpos = screenwidth / 2 - framewidth / 2;
		int ypos = screenheight / 2 - frameheight / 2;

		window.setLocation(xpos, ypos);

	}
	
	
}
 
Weil du aus einer statischen Methoder (main) eine nicht statische Methode aufrufen willst.

Lege dir ein Object von Calculator in der main an und danach führst du deine Methode auf das Objekt aus.

Also:

Java:
public static void main(String[] args) {
    Calculator calc = new Calculator();
    calc.setwindow();
}
 
Zuletzt bearbeitet:
Java:
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Calculator {

	JTextField firstfield;
	JTextField secondfield;
	Dimension framesize = new Dimension(500, 250);
	JFrame window;
	JLabel erstezahl;
	JLabel zweitezahl;

	public static void main(String[] args) {

		Calculator cal = new Calculator();
		cal.setwindow();
	}

	private void setwindow() {
		window = new JFrame();
		window.setLayout(null);
		window.setSize(framesize);
		window.setTitle("Taschenrechner");
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		window.setResizable(false);
		rechnemitte();
		setlabels();
		window.setVisible(true);

	}

	private void setlabels() {

		erstezahl = new JLabel();
		erstezahl.setText("hey");
		erstezahl.setBounds(20, 20, 100, 40);
		erstezahl.setVisible(true);

	}

	private void rechnemitte() {
		Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();

		int framewidth = framesize.width;
		int frameheight = framesize.height;
		int screenwidth = screensize.width;
		int screenheight = screensize.height;

		int xpos = screenwidth / 2 - framewidth / 2;
		int ypos = screenheight / 2 - frameheight / 2 - 100;

		window.setLocation(xpos, ypos);

	}

}
 
wurde bei mir nur versteckt sorry aber wieso wird mir der Text hier nicht angezeigt

Java:
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Calculator {

	JTextField firstfield;
	JTextField secondfield;
	Dimension framesize = new Dimension(500, 250);
	JFrame window;
	JLabel erstezahl;
	JLabel zweitezahl;

	public static void main(String[] args) {

		Calculator cal = new Calculator();
		cal.setwindow();
	}

	private void setwindow() {
		window = new JFrame();
		window.setLayout(null);
		window.setSize(framesize);
		window.setTitle("Taschenrechner");
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		window.setResizable(false);
		rechnemitte();
		setlabels();
		window.setVisible(true);

	}

	private void setlabels() {

		erstezahl = new JLabel();
		erstezahl.setText("hey");
		erstezahl.setBounds(20, 20, 100, 40);
		erstezahl.setVisible(true);

	}

	private void rechnemitte() {
		Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();

		int framewidth = framesize.width;
		int frameheight = framesize.height;
		int screenwidth = screensize.width;
		int screenheight = screensize.height;

		int xpos = screenwidth / 2 - framewidth / 2;
		int ypos = screenheight / 2 - frameheight / 2 - 100;

		window.setLocation(xpos, ypos);

	}

}
 
Java:
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calculator {

	JTextField firstfield;
	JTextField secondfield;
	Dimension framesize = new Dimension(500, 250);
	JFrame window;
	JLabel erstezahl;
	JLabel zweitezahl;

	public static void main(String[] args) {

		Calculator cal = new Calculator();
		cal.setwindow();
		
	}

	private void setwindow() {
		
		
		window = new JFrame();
		window.setLayout(null);
		window.setSize(framesize);
		window.setTitle("Taschenrechner");
		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		window.setResizable(false);
		addcontent();
		rechnemitte();
		setlabels();
		window.setVisible(true);

	}
	private void addcontent(){
			JPanel pane = new JPanel();
			pane.add(erstezahl);
			window.add(pane);
	}
	

	private void setlabels() {

		erstezahl = new JLabel();
		erstezahl.setText("hey");
		erstezahl.setBounds(20, 20, 100, 40);
		erstezahl.setVisible(true);

	}

	private void rechnemitte() {
		Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();

		int framewidth = framesize.width;
		int frameheight = framesize.height;
		int screenwidth = screensize.width;
		int screenheight = screensize.height;

		int xpos = screenwidth / 2 - framewidth / 2;
		int ypos = screenheight / 2 - frameheight / 2 - 100;

		window.setLocation(xpos, ypos);

	}

}


habs versucht aber da gibts wohl noch irgendeinen fehler
 
Geh mal bitte logisch an deinen Code durch. Überlege, welche lokalen Variablen und welche Instanz-Variablen du hast und wann und wo du etwas auf deine ContentPane hinzufügst.
 

Neue Themen


Zurück
Oben