Я создаю список покупок на основе MariaDB.
Я получаю полностью запущенную консоль Java в программе ввода / вывода.
Сейчас я пытаюсь построить графический интерфейс. Этот класс "WindowList" является моим конструктором и реализован в main.java с помощью "WindowList showlist = new WindowList ();"
Если я запрашиваю данные у MariaDB, чтобы распечатать их в JFrame через JLabel или JTextArea, я получу только последнюю точку моего списка.
Я новичок в Java и программировании. Заранее спасибо.
package shoppinglist;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
public class WindowList {
//Driver für MariaDB
static final String JDBC_DRIVER = "org.mariadb.jdbc.Driver";
//url samt port von der MariaDB
static final String DB_URL = "xxx";
//Datenbankname
static final String DB_DB = "xxx";
// Database credentials
static final String USER = "xxx";
static final String PASS = "xxx";
public WindowList() {
Connection conn = null;
Statement stmt = null;
JFrame listFrame = new JFrame();
listFrame.setSize(200,200);
listFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//JLabel derText = new JLabel();
JTextArea textfeld = new JTextArea(40, 40);
listFrame.getContentPane().add(textfeld);
listFrame.setVisible(true);
try {
//Verbindung zu MariaDB funktioniert
conn = DriverManager.getConnection(DB_URL+DB_DB, USER, PASS);
stmt = conn.createStatement();
//Query muss hier genau so hinterlegt sein wie in der DB selbst
String sql = "Select * from shoplist";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
textfeld.setText("- " + rs.getString("Item"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}