Java – die neusten Beiträge

JavaFX TableView mit Daten aus der Datenbank füllen?

Hey Leute,

ich versuche gerade meine Tabelle mit Daten aus der Datenbank zu füllen aber dabei bekomme ich eine Fehlermeldung. Kann mir jemand dabei helfen?

Users Klasse:

public class Users {
    private int id;
    private String userToken;
    private String firstname;
    private String lastname;
    private String emailAddress;
    private String creationTime;
    private Button deleteButton;

    public Users(int id, String userToken, String firstName, String lastName, String emailAddress, String creationTime) {
        this.id = id;
        this.userToken = userToken;
        this.firstname = firstName;
        this.lastname = lastName;
        this.emailAddress = emailAddress;
        this.creationTime = creationTime;
    }
}

Die Fehlermeldung:

UserController:

public class UserController {

    @FXML
    private TableColumn<Users, Integer> idCol;

    @FXML
    private TableColumn<Users, String> creationTimeCol;

    @FXML
    private TableColumn<Users, String> emailCol;

    @FXML
    private TableColumn<Users, String> firstnameCol;

    @FXML
    private TableColumn<Users, String> lastnameCol;

    @FXML
    private TableColumn<Users, String> deleteCol;

    @FXML
    private TableColumn<Users, String> userTokenCol;

    @FXML
    private TableView<Users> table;

    @FXML
    private TextField textField;

    public void printUser() {
        ObservableList<Users> allUserList = FXCollections.observableArrayList();

        try {
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:2020/database", "root", "");
            System.out.println("Connected");
            //PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM usertable");
            ResultSet resultSet = connection.createStatement().executeQuery("SELECT * FROM usertable");
            while (resultSet.next())  {
                allUserList.add(new Users(Integer.parseInt(resultSet.getString("id")),
                        resultSet.getString("userToken"), resultSet.getString("firstName"),
                        resultSet.getString("lastName"), resultSet.getString("emailAddress"),
                        resultSet.getString("creationTime")));

            }

        } catch (SQLException ignored) {
            ignored.printStackTrace();
        }
        idCol.setCellValueFactory(new PropertyValueFactory<Users, Integer>("id"));
        userTokenCol.setCellValueFactory(new PropertyValueFactory<Users, String>("userToken"));
        firstnameCol.setCellValueFactory(new PropertyValueFactory<Users, String>("firstName"));
        lastnameCol.setCellValueFactory(new PropertyValueFactory<Users, String>("lastName"));
        emailCol.setCellValueFactory(new PropertyValueFactory<Users, String>("emailAddress"));
        creationTimeCol.setCellValueFactory(new PropertyValueFactory<Users, String>("creationTime"));
        table.setItems(allUserList);
        System.out.println("all user got");
    }
}

Bild zum Beitrag
Computer, programmieren, Java, Datenbank, JavaFX, MySQL, GUI

PROCESSING- Layer festlegen und undurchlässige objekte erstellen?

hallo, wir haben in der schule seit kurzen ein paar pogrammier grundlagen mit processing.

das ziel ist es ein kleines spiel selbst zu programmieren.

ich habe mit einem spiel angefangen in dem man einen kleinen character hat (eine png datei) den man nach rechts und links steuern kann und der springen kann.

außerdem habe ich ein paar röhren eingebaut durch die der character hindurchlaufen soll.

hier kommen wir zu meiner ersten Frage: ist es möglich das ich verschiedene laye festlege, also das die röhren über dem character liegen, diesen also verdecken?

und meine zweite frage ist: ich habe ein paar schwebende plattformen erstellt auf die der character hinaufspringen können soll. allerdings fällt dieser momentan noch einfach hindurch. wie bekomme ich diese platformen solide? d.h. das wenn der character darauf landet, soll er darauf stehen bleiben und nicht hindurchfallen.

anbei noch der code, allerdings ziemlich wirr.

gif&gif2 = chaacter

danke schonmal.

PImage[] gif;
PImage [] gif2;
int nof;
int f;    // für die Laufanimation
int k;
PImage platform;
PImage hintergrund;
PImage Rohr;
PImage Rohr2;
int x = 0;
float y = 0;
boolean mover;
boolean movel;
boolean springen;
boolean rohr = false;


float jump;


boolean rechts;








void setup() {
  frameRate(130);
  size(1920, 1080);


  Rohr = loadImage("R.png");
  Rohr2 = loadImage("R2.png");
  platform = loadImage("platform.png");


  nof = 5;  
  gif = new PImage[nof];  
  int i = 0;  
  while (i < nof) { 


    gif[i] = loadImage("pixil-frame-"+i+".png");


    i=i+1;
  }   // laufanimation rechts




  gif2 = new PImage[nof];  
  int g = 0;  
  while (g    < nof) { 


    gif2[g] = loadImage("pixi-frame-"+g+".png");
    g=g+1;
  }   // laufanimation links








  hintergrund = loadImage("hintergrund.png");


  movel = false;
  mover = false;
  rechts = true;


  x = 50;
  y = 880;
  jump = 0;
}


void draw() {
  background(hintergrund);


  rohr = x > 0 && x < 10 && y > 370 && y < 490;


  println (mouseX+","+mouseY);






  image(Rohr, -20, 350, 100, 150);


  image(Rohr2, 1840, 60, 100, 150);
  image (platform, 0, 490);
  image (platform, 1660, 200);


  if (rechts) {


    image(gif[f], x, y, 160, 120);  //anfang laufen


    if (frameCount % 5 == 0)   f = f + 1;
    if (f == nof) f = 0;
  } else {
    image (gif2[k], x, y, 160, 120);


    if (frameCount % 5 == 0)   k = k + 1;
    if (k == nof) k = 0;
  }


  y = min(y+jump, 880);


  jump = jump + .28;








  if (x > 1300) {
    x = -150;
  }


  if (rohr) {
    x = 1300;
  }


  if (mover) {
    x = x+3;
  }
  if (movel) {
    x = x-3;
  }




  if (springen) {
    y = y - 5;
  }
}




void keyPressed() {


  if (key == ' ') {
    jump= -8;
  }


  if (keyCode == RIGHT) {




    mover = true;
    rechts = true;
  }




  if (keyCode == LEFT) {
    movel = true;
    rechts = false;
  }
}


void keyReleased() {
  if (keyCode == RIGHT) {
    mover = false;
  }
  if (keyCode == LEFT) {
    movel = false;
  }




  println (mouseX+","+mouseY);
}


Computer, programmieren, Java, Informatik, Processing, Spiele und Gaming

Kann mir jemand helfen, JavaFX in Eclipse zum Laufen zu bringen?

Hallo,

ich bin mit meinem Java-Buch nun bei JavaFX angelangt und muss nun, um den Code weiterverfolgen zu können, dieses installieren. Doch funktioniert dieses aus irgendeinem Grund bei mir nicht.

Das sind die Schritte, die ich aus einigen Websites und Videos habe und durchgeführt habe:

  1. Ich habe das Eclipse-Plugin "e(fx)clipse" installiert.
  2. Ich habe JavaFX17 installiert und den zip-Ordner extrahiert. (Download Website: https://gluonhq.com/products/javafx/)
  3. Dann habe ich in Eclipse eine User Bibliothek angelegt: Window --> Preferences --> Java --> BuildPath --> User Libraries --> New --> (Name eingeben) --> Add External Jars
  4. Die Dateien in dieser Bibliothek mit denen aus den Videos und Websiten verglichen. Das Ergebnis war, dass alle Dateien dabei sind.
  5. Ein JavaFX-Project in Eclipse erstellt: New --> Other --> JavaFX --> JavaFX Project --> (Namen eingeben) --> finish
  6. User Bibliothek zum Projekt hinzugefügt: Rechtsklick auf Projekt --> BuildPath --> Configure BuildPath --> Add Library in ClassPath --> User Library --> Next --> Bibliothek auswählen --> Finish

Mit dem Erstellen des Projekts wurden automatisch ein Package und eine Klasse erstellt, die voller Fehlermeldungen waren. Bei den Websites und Videos sind diese nach dem Hinzufügen der User Bibliothek verschwunden, doch bei mir sind sie weiterhin vorhanden. So sieht das aus:

Ich hoffe ihr könnt mir helfen.

Vielen Dank schon mal im voraus.

Bild zum Beitrag
Computer, programmieren, Java, Eclipse, JavaFX, Technologie

Intellij Teleport- command einbauen(Java und Maven)?

package system.Commands;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.YamlConstructor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import system.system.Main;
import system.vanish.Vanish;

import java.util.Vector;

public class VanishCommand implements CommandExecutor {

    @Override
    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
        Vanish vanish = Main.getInstance().getVanishManager();



        if (sender instanceof Player) {
            Player player = (Player) sender;
            Location loc = null;
            if (vanish.isVanished(player)) {


                vanish.setVanished(player, false);
                player.setGameMode(GameMode.SURVIVAL);
                sender.sendMessage(ChatColor.GOLD + "Manetti is raus");
                assert loc != null;
                player.teleport(loc);


            } else {
                vanish.setVanished(player, true);

                loc = player.getLocation();

                player.setGameMode(GameMode.CREATIVE);
                sender.sendMessage(ChatColor.GOLD + "Support-Mode");


            }
            return true;


        }

        return false;
    }
}

Ich habe einen Vanish Command programmiert und möchte das wenn der Player den Command ausführt dass sich dann seine Coordinaten gemerkt werden und wenn er ihn noch einmal ausführt und ent-vanished wird er wieder zu den gemerkten Coordinaten teleportiert wird. Aber der Oben zu sehende Code funktioniert leider nicht.

programmieren, Java, Minecraft, IntelliJ IDEA

Ausführen durch einen Tastendruck?

Hallo,

ich bin neu in Java und versuche jetzt, mein erstes kleines Spiel zu programmieren. Dafür muss sich aber das zu steuernde Objekt, sobald die Taste 'w' 's' 'a' oder 'd' gedrückt wird, solange in die jeweilige Richtung bewegen, bis eine andere Taste gedrückt wird. Allerdings kenne ich nur die Bedingung 'view.keyPressed()' oder '!view.keyPressed()'. Dennoch geht das mit diesen Bedingungen natürlich nicht. Könnte mir jemand helfen.

LG

PS: Hier der Code den ich bisher geschrieben habe:

import sas.*;
import java.awt.Color;

class SnakeTest {
  View view;
  Rectangle Hintergrund;
  Rectangle B1;
  Rectangle B2;
  Rectangle B3;
  Rectangle B4;
  Circle Points;
  Rectangle Snake;

  SnakeTest() {
    int x = Tools.randomNumber(70, 730);
    int y = Tools.randomNumber(70, 730); // Randomizer
    view = new View(800, 800);
    Hintergrund = new Rectangle(0, 0, 800, 800, new Color(0, 0, 153));
    B1 = new Rectangle(0, 0, 800, 50, new Color(153, 153, 153));
    B2 = new Rectangle(0, 0, 50, 800, new Color(153, 153, 153));
    B3 = new Rectangle(0, 750, 800, 50, new Color(153, 153, 153));
    B4 = new Rectangle(750, 0, 50, 800, new Color(153, 153, 153));
    Points = new Circle(x, y, 10, new Color(204, 0, 0));
    Snake = new Rectangle(360, 360, 40, 40, new Color(255, 102, 0)); // Erstellung

    while (!view.keyPressed('q')) {
      Snake.move(0, -2);

      if (view.keyPressed('w')) {
        Snake.move(0, -2);
      }

      if (view.keyPressed('s')) {
        Snake.move(0, 2);
      }

      if (view.keyPressed('d')) {
        Snake.move(2, 0);
      }

      if (view.keyPressed('a')) {
        Snake.move(-2, 0);
      } // Steuerung

      if (B1.intersects(Snake)) {
        new Text(380, 10, "ENDE", Color.RED);
        view.wait(400);
        System.exit(0);
      }

      if (B2.intersects(Snake)) {
        new Text(380, 10, "ENDE", Color.RED);
        view.wait(400);
        System.exit(0);
      }

      if (B3.intersects(Snake)) {
        new Text(380, 10, "ENDE", Color.RED);
        view.wait(400);
        System.exit(0);
      }

      if (B4.intersects(Snake)) {
        new Text(380, 10, "ENDE", Color.RED);
        view.wait(400);
        System.exit(0);
      } // Beendigung bei Fehler

      view.wait(10);
    } // Spielschleife

    new Text(380, 10, "ENDE", Color.RED);
    view.wait(400);
    System.exit(0); // Beendigung bei Tastendruck
  }
}
Computer, Schule, programmieren, Java

Java Zufallszahlen ohne Zurücklegen?

Für ein Teil eines größeren Projekts muss in in Java eine bestimmte Menge an Zufallszahlen erstellen, wobei sich keine doppeln darf.

Zuerst erstelle ich das neue Objekt "zufallszahl" der Klasse "Random".

In der äußeren For-Schleife wird dann für den Index "a" des Arrays "zufallsPosition[]" eine Zufallszahl erzeugt.

Die innere For-Schleife startet ebenfalls beim Anfangswert und läuft solange die Zählvariable "b" kleiner als die Summe aus dem aktuellen "a" und dem Startwert ist. Somit werden alle Indizes durchlaufen, die durch die vorherigen Durchgänge der äußeren For-Schleife schon eine Zufallszahl besitzen.

In der While Schleife wird dann geschaut, ob der Wert des Index "a" (also der oben erzeugten Zufallszahl) dem jeweiligen Wert des Index "b", also den vorherigen Zufallszahlen entspricht. Ist dies der Fall, bekommt das Array an der Stelle "a" eine neue Zufallszahl zugewiesen. Dies passiert (zumindest theoretisch) solange die aktuelle Zufallszahl "a" der aus der inneren For-Schleife "b" entspircht.

Es würde also bedeuten, dass er immer eine neue Zufallszahl erstellt, wenn diese schon im Array vorhanden ist.

Leider funktioniert das nicht und ich weiß selbst nach längerem Überlegen nicht warum :-(

Dann habe ich mal testweise das "==" in der While-Schleife durch ein "!=" ersetzt, d.h. es wird immer eine neue Zufallszahl erstellt bis sie der vorherigen entspricht, was überraschender Weise funktioniert (beispielsweise haben dann alle Indizes den Wert 4).

Code:

"==" in der While Schleife (so, wie es im Code steht)

"!=" in der While Schleife, funktioniert wie gewünscht.

Vielen Dank für Eure Hilfe!

Bild zum Beitrag
Computer, programmieren, Java, Informatik

Java- "Verbindungsaufbau abgelehnt"?

Hallo, hier der Code erstmal :

package EmailSending;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SendEmail555
{
    public static void main(String [] args){
        String to = "z";//change accordingly
        String from = "y"; //change accordingly
        String host = "x";//or IP address

        //Get the session object
        Properties properties = System.getProperties();
        properties.setProperty("mail.smtp.host", host);
        Session session = Session.getDefaultInstance(properties);

        //compose the message
        try{
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
            message.setSubject("Ping");
            message.setText("Hello, this is example of sending email  ");

            // Send message
            Transport.send(message);
            System.out.println("message sent successfully....");

        }catch (MessagingException mex) {mex.printStackTrace();}
    }
}

Und dann kommt diese Fehlermeldung :

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: xyz; timeout -1;
 nested exception is:
   java.net.ConnectException: Verbindungsaufbau abgelehnt
   at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)
   at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
   at javax.mail.Service.connect(Service.java:366)
   at javax.mail.Service.connect(Service.java:246)
   at javax.mail.Service.connect(Service.java:195)
   at javax.mail.Transport.send0(Transport.java:254)
   at javax.mail.Transport.send(Transport.java:124)
   at EmailSending.SendEmail555.main(SendEmail555.java:29)
Caused by: java.net.ConnectException: Verbindungsaufbau abgelehnt
   at java.base/sun.nio.ch.Net.connect0(Native Method)
   at java.base/sun.nio.ch.Net.connect(Net.java:579)
   at java.base/sun.nio.ch.Net.connect(Net.java:568)
   at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
   at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
   at java.base/java.net.Socket.connect(Socket.java:633)
   at java.base/java.net.Socket.connect(Socket.java:583)
   at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:359)
   at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
   at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2175)
   ... 7 more

Was habe ich falsch gemacht ? Immer kommt dieser Fehler, der Verbindungsaufbau würde abgelehnt werden...

PC, Computer, IT, programmieren, Java, Informatik

Was ist Falsch, Java-Swing?

Hallo,

Möchte, dass wenn man auf "Schreiben" klickt zum ActionListener kommt und dann auf einen neuen JFrame seinen Text schreiben kann, aber irgendwie geht das nicht, funktioniert das mit den Parametern nicht ?

  1. Klasse (beinhaltet main)
package Swing;

import javax.swing.*;

public class Menubar {

    static JMenuItem item1, item2, item3; // 2 Items für Menü

    public Menubar() {
        String text;
        JFrame frame = new  JFrame("Fenstertext");
        frame.setSize(800, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null); // Mitte
        frame.setLayout(null);
        frame.requestFocus();

        JMenuBar bar = new JMenuBar();
        JMenu menu = new JMenu("Datei");// Bekommt Items, Beispiel auf File klicken ist Menu,namens "Datei" darunter dann Item

        item1 = new JMenuItem("Neu"); // 1. Itemname
        item1.addActionListener(new MenuHandler());
        item2 = new JMenuItem("Beenden");
        item2.addActionListener(new MenuHandler());
        item3 = new JMenuItem("Schreiben");
        item3.addActionListener(new MenuHandler());


        menu.add(item1);
        menu.addSeparator();  // Strich für Abtrennung (organisierter)
        menu.add(item2);
        menu.addSeparator();
        menu.add(item3);

        bar.add(menu); // Menu zu Bar hinzufügen
        frame.setJMenuBar(bar); // Setzen, da nur eine bar...
        frame.setVisible(true);

    }

    public static void main(String[] args) {

        new Menubar();

    }

}

2 Klasse :

package Swing;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Scanner;

public class MenuHandler implements ActionListener {


    @Override
    public void actionPerformed(ActionEvent e) {
// WAS SOLL PASSIEREN ?

        if (e.getSource() == Menubar.item1) { // Ein bestimmtes Item ?
            System.out.println("Neu...");
        } else if (e.getSource() == Menubar.item2) {
            System.exit(0); // Programm beenden
        } else if (e.getSource() == Menubar.item3) {
            JFrame neuer = new JFrame();
            File file1 = new File("src/textSpeichern.txt");
            neuer.setSize(800, 600);
            neuer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            neuer.setResizable(false);
            neuer.setLocationRelativeTo(null); // Mitte
            neuer.setLayout(null);
            neuer.requestFocus();

            neuer.setVisible(true);

            System.out.println("Was möchtest du schreiben?");
            Scanner scanner = new Scanner(System.in);
            String as = scanner.next();
            JPanel panel = new JPanel();
            JLabel label = new JLabel(as);
            panel.add(label);
            neuer.add(panel);
        }

    }
}

Warum geht das nicht ???

Danke für die Antworten bzw. die Hilfe ! :)

Computer, programmieren, Java, Informatik

Meistgelesene Beiträge zum Thema Java