Ich empfehle das Buch
"Grundkurs Programmieren in Java" (Hanser Verlag)
Die "Java Insel" würd ich nur als (sehr gutes) Nachschlagewerk empfehlen.

Fang auf keinen Fall (!!!) nur mit Youtube Videos an (kann man auf jeden Fall als Ergänzung verwenden), die lassen leider meist wichtige Grundlagen aus.

...zur Antwort
Java wird leben, weil ...

Nein, es wird nicht "aussterben", für große Firmen ist es sowas von egal ob Java etwas kostet oder nicht.

Man kann außerdem einfach das OpenJDK verwenden, das ist gratis und wird es auch bleiben.

...zur Antwort
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


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


public class SuperButton extends JButton implements ActionListener {
	private int counter = 0;


	public SuperButton() {
		super("You can count on me!!");
		addActionListener(this);
	}


	public int getCounter() {
		return this.counter;
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		this.counter++;
		System.out.println("counter: " + this.counter);
	}


	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.setTitle("JButton Beispiel");
		JPanel panel = new JPanel();
		frame.add(panel);


		SuperButton button = new SuperButton();
		panel.add(button);


		frame.pack();
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		frame.setVisible(true);
	}
}
...zur Antwort

Ich würde mich erstmal hauptsächlich auf eine Sprache konzentrieren sobald du ein paar gesehen hast und weißt welche dir besonders zusagt.

Jede Programmiersprache hat ihren Anwendungsbereich, es nicht DIE Programmiersprache schlechthin.

Das Betriebssystem ist relativ egal, (außer bei C, wobei ich persönlich von C eher abraten würde, aber kommt darauf an was du programmieren möchtest...?)

...zur Antwort

Sieh dir mal dass hier an https://code.makery.ch/library/javafx-tutorial/part7/
dort wird das eigentlich sehr gut erklärt.

Ob es eine JavaFX, Swing oder Konsolenanwendung ist ist egal, funktioniert alles.

...zur Antwort

kommt drauf an, wenn du noch einen externen Monitor hast dann auf jeden Fall, wenn nicht würde ich zu einem größeren Laptop raten (kommt jetzt aber auch stark darauf an wie groß deine Projekte sind... ich hab z.B. in der Arbeit 2 externe Monitore am Laptop angeschlossen und möchte gern noch einen 3ten^^^)
eine HD Auflösung reicht für 14 Zoll übrigens vollkommen aus

also zusammengefasst:
Für kleine bis mittelgroße Projekte (sagen wir mal grob < Klassen) ist der Laptop sicherlich ausreichend, wenn du mal zig tausende Klassen hast wird er das nicht mehr sinnvoll packen... wenn dann mal ein "rename" einige Minuten dauert wird es langweilig

...zur Antwort

Hausaufgaben bitte selber machen bzw. zumindest über einen Ansatz nachdenken!

...zur Antwort

poste bitte auch deine "passt" Methode,
Nebeninfo: lege dich, da es den Lesefluss verbessert, auf eine Sprache bei der Benennung fest (am besten Englisch)

...zur Antwort
Java KeyListner geht nicht?

Erstmal hallo,

Ich habe eine Frage ich programmire gerade einen "BOT" der für mich automatisch aufgaben ausführt z.b. YT öffnen. So jetzt will ich verschidene funktionen durch verschidene tasten ausführen. Dazu habe ich eine KeyListner klasse die ich in der main methode durch new KeyListner(); aufrufe! Hir mal der Code :

import java.awt.AWTException;

import java.awt.MouseInfo;

import java.awt.Point;

import java.awt.PointerInfo;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

public class KeyListner implements KeyListener {

   static int i = 0;

   PointerInfo a = MouseInfo.getPointerInfo();

   Point b = a.getLocation();

   @Override

   public void keyPressed(KeyEvent e) {

   }

   @Override

   public void keyReleased(KeyEvent e) {

   }

   @Override

   public void keyTyped(KeyEvent e) {

         if((e.getKeyChar())== KeyEvent.VK_F1) {

         }else {

            if((e.getKeyChar())== KeyEvent.VK_F2) {

               try {

                  AbUndAn.AberntenK(); // eine der Funktionen

               } catch (AWTException | InterruptedException e1) {

                  e1.printStackTrace();

               }

            }else {

               if((e.getKeyChar())== KeyEvent.VK_F3) {

                  Var.Felder[i] = new Feld((int) b.getX(),(int) b.getY());

                        i++;

                        System.out.println("Erstellt");

               }

            }

         }  

}

}

Doch wenn ich dann F1,F2 oder F3 drücke passirt nichts, nichtmal Println.

Sorry wenn es etwas offensichtliches ist ich bin zwar kein Anfänger aber mit keylistner kenn ich mich nicht aus.

...zum Beitrag

zwar keine direkte Antwort auf deine Frage, aber kuk dir doch mal folgende zwei Sachen an, eventuell sind die für dich interessant.

Sikuli:
https://www.youtube.com/watch?v=Mkkn8IRBWSQ

Selenium:
https://www.youtube.com/watch?v=aa3YakyA3kQ

...zur Antwort
Java While-Schleife hört nicht auf?

Hallo. Ich versuche auf Java ein Spiel zu programmieren und meine Schleife hört einfach nicht auf zu laufen also das Spiel hängt sich quasi auf und macht nichts mehr, ihr wisst was ich meine :D
Wäre super lieb wenn mir jemand helfen könnte.

Hier ist mein Code:

boolean nochmal;

   nochmal = true;

   if (läuft) {

     while (nochmal) {

       if (tf_frage.getText().equals("14*6") && tf_eingabe.getText().equals("84")) {

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if

       else if (tf_frage.getText().equals("13*8") && tf_eingabe.getText().equals("104")){

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if-else

       else if(tf_frage.getText().equals("11*12") && tf_eingabe.getText().equals("132")) {

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if-else

       else if (tf_frage.getText().equals("19*4") && tf_eingabe.getText().equals("76")) {

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if-else

       else if (tf_frage.getText().equals("9*16") && tf_eingabe.getText().equals("144")){

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if-else

       else if (tf_frage.getText().equals("12*17") && tf_eingabe.getText().equals("204")) {

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if-else

       else if (tf_frage.getText().equals("16*7") && tf_eingabe.getText().equals("112")) {

         tf_eingabe.setBackground(Color.green);

         nochmal = false;

         JOptionPane.showMessageDialog(null, "Ergebnis", "Ihre Antwort war richtig!", JOptionPane.INFORMATION_MESSAGE);

       } // end of if-else

       else {

         tf_eingabe.setBackground(Color.red);

       } // end of if-else

     } // end of while

   } // end of if

...zum Beitrag

ohne mir das jetzt genauer anzuschauen, ein paar Anmerkungen, ein solches Konstrukt wie du da geschrieben hast, ist .... nicht schön ;)

ich hab dir mal kurz zwei methoden geschrieben mit denen du das ganze schonmal um einiges schöner und kürzer machen kannst, vermeide solche if-else Bedingungen mit so vielen "else if's"

versuche auch deinen Code in Methoden aufzuteilen, als grobe Richtlinie pro Methode nicht mehr als 20, vielleicht 30 Zeilen (manchmal ist es besser wenn eine Methode mehr Zeilen hat aber mehr wie 100 ist meistens nicht wirklich sinnvoll)

 	private void checkQuestionAndSetColor(JTextField answerField,String correctAnswer) {
		boolean wasAnsweredCorrectly = checkIfQuestionWasAnsweredCorrect(answerField, correctAnswer);
		
		if(wasAnsweredCorrectly) {
			answerField.setBackground(Color.GREEN);
		}else {
			answerField.setBackground(Color.RED);
		}
	}
	
	private boolean checkIfQuestionWasAnsweredCorrect(JTextField answerField,String correctAnswer) {
		return answerField.getText().trim().equals(correctAnswer);
	}

...zur Antwort

die Variante mit der Schleife ist nicht gerade gut, besser du verwendet einen java.util.Timer,

ich hab dir eine kleine Klasse geschrieben, bei Fragen einfach melden

import java.util.Timer;
import java.util.TimerTask;

public class Main {

	private int someVariable = 0;

	public static void main(String[] args) {
		Main main = new Main();
		main.test();
	}

	private void test() {

		// first variant (runnable as anonymous class)
		Runnable r = new Runnable() {
			@Override
			public void run() {
				someVariable++;
				System.out.println("increased someVariable to: " + someVariable);
			}
		};
		executeInInterval(r, 3000, 500, 4);

		
		// second (shortest) variant (runnable as lambda)
		executeInIntervalForever(() -> System.out.println("i run forever and do nothing"), 1000, 2000);

		
		// second variant
		TimerTask runforevertask = executeInIntervalForever(() -> {
			someVariable += 10;
			System.out.println(
					"i run forever and do nothing in curly braces, increased someVariable to: " + someVariable);
		}, 4000, 500);

		runforevertask.cancel();
	}

	private TimerTask executeInIntervalForever(Runnable runnable, int delayBeforeFirstExecution, int intervalDelay) {
		TimerTask task = new TimerTask() {
			@Override
			public void run() {
				System.out.println("my schedule time is " + scheduledExecutionTime());

				runnable.run();
			}

		};
		new Timer().scheduleAtFixedRate(task, delayBeforeFirstExecution, intervalDelay);
		return task;
	}

	private TimerTask executeInInterval(Runnable runnable, int delayBeforeFirstExecution, int intervalDelay,
			int repeats) {
		TimerTask task = new TimerTask() {
			int timesrun = 0;

			@Override
			public void run() {
				if (timesrun >= repeats) {
					this.cancel();
					return;
				}

				runnable.run();

				timesrun++;
			}

			@Override
			public boolean cancel() {
				System.out.println("damn, you cancelled me");
				return super.cancel();
			}
		};
		new Timer().scheduleAtFixedRate(task, delayBeforeFirstExecution, intervalDelay);
		return task;
	}

}


...zur Antwort

List<Object> printListreversed(Object... params{

return Lists.reverse(Arrays.asList(params));

}

(ungetestet)

verändert deine ursprüngliche Liste übrigens nicht

...zur Antwort

https://www.programmieraufgaben.ch/aufgaben/top

...zur Antwort

und was hat das mit "Java" zu tun?

...zur Antwort

ich habs so wie hier gemacht und es funktioniert problemlos

http://code.makery.ch/library/javafx-8-tutorial/part1/

erste Vermutung... dir fehlt das e(fx)clipse plugin

...zur Antwort
  1. die Klasse Node implements (nicht extends, dass ist glaube ich ein Angabefehler) erstellen
  2. ein Graph Interface erstellen mit den methoden i - v
  3. eine Klasse erstellen die dieses Interface implementiert, dabei ein 2 dimensionales Array mit typ <N extends Comparable>
  4. die zweite Klasse erstellen
...zur Antwort

bist du ein Mädchen oder ein Junge???

...zur Antwort