basic swing gui,带有jdbc连接,用查询中的信息填充标签

hc8w905p  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(208)

目前,我已经创建了一个swing gui来从基本数据库中提取数据。
最终,我想把它构建成一个销售点系统,这就是开始。
一旦我得到了“基本”下来,我将能够扩大它与不同的标签和更多的项目。
目前,查询可以提取数据,我可以将代码打印到控制台,但当我尝试将其实现到每个标签或文本框时,它将只显示在一个文本框上,而不会显示其他文本框。
是否需要循环遍历我的每个标签,因为它们被标记为label1,label2。。。?那么如何确保sql查询加载到每个标签上呢?在循环中,我需要排序productid吗?
我尝试使用多个查询,得到的结果集是关闭错误,并认为有一个更简单的方法来获取数据。
代码如下:

package application;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;

import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.BoxLayout;
import javax.swing.JDesktopPane;

public class Application extends JFrame {

    private JTextField prc2;
    private JTextField prc1;
    //private JTable table;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Application frame = new Application();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Application() {
        getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        JDesktopPane desktopPane = new JDesktopPane();
        getContentPane().add(desktopPane);

        prc2 = new JTextField();
        prc2.setBounds(70, 111, 86, 20);
        desktopPane.add(prc2);
        prc2.setColumns(10);

        prc1 = new JTextField();
        prc1.setBounds(70, 80, 86, 20);
        desktopPane.add(prc1);
        prc1.setColumns(10);

        JLabel item1 = new JLabel("New label");
        item1.setBounds(10, 83, 46, 14);
        desktopPane.add(item1);

        JLabel item2 = new JLabel("New label");
        item2.setBounds(10, 114, 46, 14);
        desktopPane.add(item2);

        JLabel qty1 = new JLabel("New label");
        qty1.setBounds(181, 83, 46, 14);
        desktopPane.add(qty1);

        JLabel qty2 = new JLabel("New label");
        qty2.setBounds(181, 114, 46, 14);
        desktopPane.add(qty2);

        JLabel qty = new JLabel("Quantity");
        qty.setBounds(181, 40, 46, 14);
        desktopPane.add(qty);

        JLabel Price = new JLabel("PRICE");
        Price.setBounds(70, 40, 46, 14);
        desktopPane.add(Price);

        Connection conn = null;
        //Statement stmt = null;
        //ObservableList<String> data = FXCollections.observableArrayList();

        try {
            String dbURL = "jdbc:sqlserver://localhost:1433;databaseName = Capstone; username=dbuser; password=password";
            conn = DriverManager.getConnection(dbURL);
            Statement stmt = conn.createStatement();
            String sqlStmt = "SELECT * FROM dbo.products WHERE ProductID = 1";
            ResultSet rs = stmt.executeQuery(sqlStmt);
            while (rs.next()) {
                int id = rs.getInt("ProductID");
                String productName = rs.getString("productName");
                String quant = rs.getString("productQty");
                String price = rs.getString("ProductPrice");

                item1.setText(productName);
                qty1.setText(quant);
                prc1.setText(price);
            }
            String sqlStmt1 = "SELECT * FROM dbo.products WHERE ProductID = 2";
            ResultSet rs1 = stmt.executeQuery(sqlStmt1);
            while (rs1.next()) {
                int id1 = rs.getInt("ProductID");
                String productName1 = rs.getString("productName");
                String quant1 = rs.getString("productQty");
                String price1 = rs.getString("ProductPrice");

                item2.setText(productName1);
                qty2.setText(quant1);
                prc2.setText(price1);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

如果我遗漏了一个类似的问题,请给我指出正确的方向。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题