当前位置: 首页 > news >正文

【小学期】常用基于Swing的七个静态界面

示例1:基本的带按钮和标签的界面

在这里插入图片描述

import javax.swing.*;
import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame = new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);JPanel panel = new JPanel();panel.setLayout(new BorderLayout());JLabel label = new JLabel("Hello, Swing!", SwingConstants.CENTER);JButton button = new JButton("Click Me");panel.add(label, BorderLayout.CENTER);panel.add(button, BorderLayout.SOUTH);frame.add(panel);frame.setVisible(true);}
}

示例2:带文本框和复选框的界面

在这里插入图片描述

import javax.swing.*;
import java.awt.*;public class SimpleSwingApp2 {public static void main(String[] args) {JFrame frame = new JFrame("Simple Swing App 2");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);JPanel panel = new JPanel();panel.setLayout(new GridLayout(3, 1));JLabel label = new JLabel("Enter your name:");JTextField textField = new JTextField();JCheckBox checkBox = new JCheckBox("I agree to the terms and conditions");panel.add(label);panel.add(textField);panel.add(checkBox);frame.add(panel);frame.setVisible(true);}
}

示例3:带单选按钮和下拉菜单的界面

在这里插入图片描述

import javax.swing.*;
import java.awt.*;public class SimpleSwingApp3 {public static void main(String[] args) {JFrame frame = new JFrame("Simple Swing App 3");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);JPanel panel = new JPanel();panel.setLayout(new GridLayout(3, 2));JLabel genderLabel = new JLabel("Gender:");JRadioButton maleButton = new JRadioButton("Male");JRadioButton femaleButton = new JRadioButton("Female");ButtonGroup genderGroup = new ButtonGroup();genderGroup.add(maleButton);genderGroup.add(femaleButton);JLabel countryLabel = new JLabel("Country:");String[] countries = {"USA", "Canada", "UK", "Australia"};JComboBox<String> countryComboBox = new JComboBox<>(countries);panel.add(genderLabel);panel.add(maleButton);panel.add(new JLabel());  // Empty cellpanel.add(femaleButton);panel.add(countryLabel);panel.add(countryComboBox);frame.add(panel);frame.setVisible(true);}
}

示例4:界面上有三个按钮,每个按钮点击后都会跳转到新的界面

在这里插入图片描述
在这里插入图片描述

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class MainApp {public static void main(String[] args) {// 创建主框架JFrame mainFrame = new JFrame("Main Frame");mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mainFrame.setSize(400, 300);// 创建主面板JPanel mainPanel = new JPanel();mainPanel.setLayout(new GridLayout(3, 1));// 创建三个按钮JButton button1 = new JButton("Go to Frame 1");JButton button2 = new JButton("Go to Frame 2");JButton button3 = new JButton("Go to Frame 3");// 为按钮添加动作监听器button1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 点击按钮1时打开新界面openNewFrame("Frame 1", "Welcome to Frame 1");}});button2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 点击按钮2时打开新界面openNewFrame("Frame 2", "Welcome to Frame 2");}});button3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 点击按钮3时打开新界面openNewFrame("Frame 3", "Welcome to Frame 3");}});// 将按钮添加到主面板mainPanel.add(button1);mainPanel.add(button2);mainPanel.add(button3);// 将主面板添加到主框架mainFrame.add(mainPanel);// 显示主框架mainFrame.setVisible(true);}// 打开新界面的方法private static void openNewFrame(String frameTitle, String message) {// 创建新框架JFrame newFrame = new JFrame(frameTitle);newFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 仅关闭当前窗口newFrame.setSize(300, 200);// 创建新面板JPanel newPanel = new JPanel();newPanel.setLayout(new BorderLayout());// 创建标签并添加到面板JLabel label = new JLabel(message, SwingConstants.CENTER);newPanel.add(label, BorderLayout.CENTER);// 将面板添加到框架newFrame.add(newPanel);// 显示新框架newFrame.setVisible(true);}
}

示例5:菜单栏导航到不同的功能页面:在这里插入图片描述

  1. 主类和主方法(MainApp.java)

    • 创建一个主框架 mainFrame,设置标题为 “Main Frame”,并设置默认关闭操作和窗口大小。
    • 创建一个主面板 mainPanel,使用 GridLayout 布局将三个按钮垂直排列。
    • 创建三个按钮 button1button2button3,并设置按钮上的文本。
    • 为每个按钮添加动作监听器,当按钮被点击时,会调用 openNewFrame 方法打开一个新的窗口。
    • 将所有按钮添加到主面板,并将主面板添加到主框架中。
    • 最后,设置主框架为可见。
  2. 打开新界面的方法(openNewFrame)

    • 该方法接收两个参数:窗口标题 frameTitle 和显示消息 message
    • 创建一个新的框架 newFrame,设置标题和关闭操作(仅关闭当前窗口而非整个应用程序)。
    • 创建一个新面板 newPanel,使用 BorderLayout 布局。
    • 创建一个标签 label,设置显示的文本和对齐方式,并将标签添加到面板的中央位置。
    • 将面板添加到新的框架中,并设置新框架为可见。
      好的,我可以为你提供一个简单的Java Swing应用程序框架,该框架包含三个功能模块。每个功能模块都是一个静态界面,用户可以通过菜单栏选择不同的功能。这个项目系统的基本框架将包括:
  3. 主界面:包含菜单栏,可以导航到不同的功能模块。

  4. 功能模块1:例如,用户信息展示界面。

  5. 功能模块2:例如,产品信息展示界面。

  6. 功能模块3:例如,订单信息展示界面。

以下是完整的代码示例:

主类:MainApp.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class MainApp {public static void main(String[] args) {// 创建主框架JFrame mainFrame = new JFrame("Simple Project System");mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mainFrame.setSize(600, 400);// 创建菜单栏JMenuBar menuBar = new JMenuBar();// 创建菜单JMenu menu = new JMenu("Menu");// 创建菜单项JMenuItem userMenuItem = new JMenuItem("User Info");JMenuItem productMenuItem = new JMenuItem("Product Info");JMenuItem orderMenuItem = new JMenuItem("Order Info");// 添加菜单项到菜单menu.add(userMenuItem);menu.add(productMenuItem);menu.add(orderMenuItem);// 添加菜单到菜单栏menuBar.add(menu);// 设置菜单栏到主框架mainFrame.setJMenuBar(menuBar);// 创建主面板JPanel mainPanel = new JPanel();mainPanel.setLayout(new CardLayout());// 创建功能页面JPanel userPanel = createUserPanel();JPanel productPanel = createProductPanel();JPanel orderPanel = createOrderPanel();// 将功能页面添加到主面板mainPanel.add(userPanel, "User Info");mainPanel.add(productPanel, "Product Info");mainPanel.add(orderPanel, "Order Info");// 为菜单项添加动作监听器userMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {CardLayout cl = (CardLayout)(mainPanel.getLayout());cl.show(mainPanel, "User Info");}});productMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {CardLayout cl = (CardLayout)(mainPanel.getLayout());cl.show(mainPanel, "Product Info");}});orderMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {CardLayout cl = (CardLayout)(mainPanel.getLayout());cl.show(mainPanel, "Order Info");}});// 将主面板添加到主框架mainFrame.add(mainPanel);// 显示主框架mainFrame.setVisible(true);}// 创建用户信息面板private static JPanel createUserPanel() {JPanel panel = new JPanel();panel.setLayout(new BorderLayout());JLabel label = new JLabel("User Information", SwingConstants.CENTER);panel.add(label, BorderLayout.CENTER);// 添加更多用户信息组件// ...return panel;}// 创建产品信息面板private static JPanel createProductPanel() {JPanel panel = new JPanel();panel.setLayout(new BorderLayout());JLabel label = new JLabel("Product Information", SwingConstants.CENTER);panel.add(label, BorderLayout.CENTER);// 添加更多产品信息组件// ...return panel;}// 创建订单信息面板private static JPanel createOrderPanel() {JPanel panel = new JPanel();panel.setLayout(new BorderLayout());JLabel label = new JLabel("Order Information", SwingConstants.CENTER);panel.add(label, BorderLayout.CENTER);// 添加更多订单信息组件// ...return panel;}
}

代码说明:

  1. 主类和主方法(MainApp.java)

    • 创建一个主框架 mainFrame,设置标题为 “Simple Project System”,并设置默认关闭操作和窗口大小。
    • 创建一个菜单栏 menuBar,并在其中创建一个菜单 menu
    • 在菜单中添加三个菜单项:userMenuItemproductMenuItemorderMenuItem,分别对应用户信息、产品信息和订单信息的功能。
    • 创建一个主面板 mainPanel,使用 CardLayout 布局管理不同的功能页面。
    • 创建三个功能页面:userPanelproductPanelorderPanel,分别展示用户信息、产品信息和订单信息。
    • 为每个菜单项添加动作监听器,当菜单项被点击时,会显示相应的功能页面。
    • 将所有组件添加到主框架中,并设置主框架为可见。
  2. 功能面板的创建方法

    • createUserPanelcreateProductPanelcreateOrderPanel 方法分别创建用户信息、产品信息和订单信息的静态界面。
    • 每个方法返回一个 JPanel,并在面板中添加一个标签展示对应的功能名称。
    • 你可以在这些方法中添加更多的组件来展示更详细的信息。

示例6:三个选项卡到不同的功能页面

在这里插入图片描述

主类:MainApp.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.DefaultTableModel;public class MainApp {public static void main(String[] args) {// 创建主框架JFrame mainFrame = new JFrame("Simple Project System");mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);mainFrame.setSize(800, 600);// 创建选项卡面板JTabbedPane tabbedPane = new JTabbedPane();// 创建用户信息面板JPanel userPanel = createUserPanel();tabbedPane.addTab("User Info", userPanel);// 创建产品信息面板JPanel productPanel = createProductPanel();tabbedPane.addTab("Product Info", productPanel);// 创建订单信息面板JPanel orderPanel = createOrderPanel();tabbedPane.addTab("Order Info", orderPanel);// 将选项卡面板添加到主框架mainFrame.add(tabbedPane);// 显示主框架mainFrame.setVisible(true);}// 创建用户信息面板private static JPanel createUserPanel() {JPanel panel = new JPanel(new BorderLayout());String[] columnNames = {"ID", "Name", "Email"};DefaultTableModel model = new DefaultTableModel(columnNames, 0);JTable table = new JTable(model);// 添加示例数据model.addRow(new Object[]{1, "John Doe", "john@example.com"});model.addRow(new Object[]{2, "Jane Smith", "jane@example.com"});JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane, BorderLayout.CENTER);JPanel controlPanel = new JPanel();JTextField idField = new JTextField(5);JTextField nameField = new JTextField(10);JTextField emailField = new JTextField(15);JButton addButton = new JButton("Add");JButton updateButton = new JButton("Update");JButton deleteButton = new JButton("Delete");controlPanel.add(new JLabel("ID:"));controlPanel.add(idField);controlPanel.add(new JLabel("Name:"));controlPanel.add(nameField);controlPanel.add(new JLabel("Email:"));controlPanel.add(emailField);controlPanel.add(addButton);controlPanel.add(updateButton);controlPanel.add(deleteButton);panel.add(controlPanel, BorderLayout.SOUTH);// 添加按钮功能addButton.addActionListener(e -> {int id = Integer.parseInt(idField.getText());String name = nameField.getText();String email = emailField.getText();model.addRow(new Object[]{id, name, email});});updateButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(idField.getText(), selectedRow, 0);model.setValueAt(nameField.getText(), selectedRow, 1);model.setValueAt(emailField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}// 创建产品信息面板private static JPanel createProductPanel() {JPanel panel = new JPanel(new BorderLayout());String[] columnNames = {"ID", "Name", "Price"};DefaultTableModel model = new DefaultTableModel(columnNames, 0);JTable table = new JTable(model);// 添加示例数据model.addRow(new Object[]{1, "Product A", 10.0});model.addRow(new Object[]{2, "Product B", 20.0});JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane, BorderLayout.CENTER);JPanel controlPanel = new JPanel();JTextField idField = new JTextField(5);JTextField nameField = new JTextField(10);JTextField priceField = new JTextField(10);JButton addButton = new JButton("Add");JButton updateButton = new JButton("Update");JButton deleteButton = new JButton("Delete");controlPanel.add(new JLabel("ID:"));controlPanel.add(idField);controlPanel.add(new JLabel("Name:"));controlPanel.add(nameField);controlPanel.add(new JLabel("Price:"));controlPanel.add(priceField);controlPanel.add(addButton);controlPanel.add(updateButton);controlPanel.add(deleteButton);panel.add(controlPanel, BorderLayout.SOUTH);// 添加按钮功能addButton.addActionListener(e -> {int id = Integer.parseInt(idField.getText());String name = nameField.getText();double price = Double.parseDouble(priceField.getText());model.addRow(new Object[]{id, name, price});});updateButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(idField.getText(), selectedRow, 0);model.setValueAt(nameField.getText(), selectedRow, 1);model.setValueAt(priceField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}// 创建订单信息面板private static JPanel createOrderPanel() {JPanel panel = new JPanel(new BorderLayout());String[] columnNames = {"Order ID", "Product ID", "Quantity"};DefaultTableModel model = new DefaultTableModel(columnNames, 0);JTable table = new JTable(model);// 添加示例数据model.addRow(new Object[]{1, 1, 2});model.addRow(new Object[]{2, 2, 1});JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane, BorderLayout.CENTER);JPanel controlPanel = new JPanel();JTextField orderIdField = new JTextField(5);JTextField productIdField = new JTextField(5);JTextField quantityField = new JTextField(5);JButton addButton = new JButton("Add");JButton updateButton = new JButton("Update");JButton deleteButton = new JButton("Delete");controlPanel.add(new JLabel("Order ID:"));controlPanel.add(orderIdField);controlPanel.add(new JLabel("Product ID:"));controlPanel.add(productIdField);controlPanel.add(new JLabel("Quantity:"));controlPanel.add(quantityField);controlPanel.add(addButton);controlPanel.add(updateButton);controlPanel.add(deleteButton);panel.add(controlPanel, BorderLayout.SOUTH);// 添加按钮功能addButton.addActionListener(e -> {int orderId = Integer.parseInt(orderIdField.getText());int productId = Integer.parseInt(productIdField.getText());int quantity = Integer.parseInt(quantityField.getText());model.addRow(new Object[]{orderId, productId, quantity});});updateButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(orderIdField.getText(), selectedRow, 0);model.setValueAt(productIdField.getText(), selectedRow, 1);model.setValueAt(quantityField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}
}

代码说明:

  1. 主类和主方法(MainApp.java)

    • 创建一个主框架 mainFrame,设置标题为 “Simple Project System”,并设置默认关闭操作和窗口大小。
    • 创建一个 JTabbedPane 组件用于选项卡布局。
    • 创建三个选项卡面板:userPanelproductPanelorderPanel,分别展示用户信息、产品信息和订单信息。
    • 将选项卡面板添加到 JTabbedPane 中,并将 JTabbedPane 添加到主框架。
    • 设置主框架为可见。
  2. 功能面板的创建方法

    • createUserPanelcreateProductPanelcreateOrderPanel 方法分别创建用户信息、产品信息和订单信息的面板。
    • 每个方法都创建一个 JTable 组件用于展示数据,并提供增删改查操作的按钮和文本框。
    • 增加示例数据到表格中。
    • 添加按钮功能,分别实现添加、更新和删除操作。

示例7:带有登录界面的常用系统的Swing静态界面框架

在这里插入图片描述
账号:“admin”
密码: “password”
在这里插入图片描述
在这里插入图片描述

主类:MainApp.java

package view;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.table.DefaultTableModel;public class MainApp {public static void main(String[] args) {// 创建并显示登录界面LoginFrame loginFrame = new LoginFrame();loginFrame.setVisible(true);}
}class LoginFrame extends JFrame {private JTextField usernameField;private JPasswordField passwordField;public LoginFrame() {// 设置登录框架setTitle("Login");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(300, 150);setLocationRelativeTo(null);// 创建面板JPanel panel = new JPanel(new GridLayout(3, 2));// 添加组件到面板panel.add(new JLabel("Username:"));usernameField = new JTextField();panel.add(usernameField);panel.add(new JLabel("Password:"));passwordField = new JPasswordField();panel.add(passwordField);JButton loginButton = new JButton("Login");panel.add(loginButton);JButton cancelButton = new JButton("Cancel");panel.add(cancelButton);// 添加面板到框架add(panel);// 添加按钮监听器loginButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String username = usernameField.getText();String password = new String(passwordField.getPassword());if (authenticate(username, password)) {// 登录成功,打开主界面MainFrame mainFrame = new MainFrame();mainFrame.setVisible(true);dispose(); // 关闭登录框架} else {// 登录失败,显示错误信息JOptionPane.showMessageDialog(LoginFrame.this, "Invalid username or password", "Login Error", JOptionPane.ERROR_MESSAGE);}}});cancelButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});}private boolean authenticate(String username, String password) {// 简单的用户名和密码验证return "admin".equals(username) && "password".equals(password);}
}class MainFrame extends JFrame {public MainFrame() {// 设置主框架setTitle("Main Application");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(800, 600);setLocationRelativeTo(null);// 创建选项卡面板JTabbedPane tabbedPane = new JTabbedPane();// 创建用户信息面板JPanel userPanel = createUserPanel();tabbedPane.addTab("User Info", userPanel);// 创建产品信息面板JPanel productPanel = createProductPanel();tabbedPane.addTab("Product Info", productPanel);// 创建订单信息面板JPanel orderPanel = createOrderPanel();tabbedPane.addTab("Order Info", orderPanel);// 将选项卡面板添加到主框架add(tabbedPane);}// 创建用户信息面板private JPanel createUserPanel() {JPanel panel = new JPanel(new BorderLayout());String[] columnNames = {"ID", "Name", "Email"};DefaultTableModel model = new DefaultTableModel(columnNames, 0);JTable table = new JTable(model);// 添加示例数据model.addRow(new Object[]{1, "John Doe", "john@example.com"});model.addRow(new Object[]{2, "Jane Smith", "jane@example.com"});JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane, BorderLayout.CENTER);JPanel controlPanel = new JPanel();JTextField idField = new JTextField(5);JTextField nameField = new JTextField(10);JTextField emailField = new JTextField(15);JButton addButton = new JButton("Add");JButton updateButton = new JButton("Update");JButton deleteButton = new JButton("Delete");controlPanel.add(new JLabel("ID:"));controlPanel.add(idField);controlPanel.add(new JLabel("Name:"));controlPanel.add(nameField);controlPanel.add(new JLabel("Email:"));controlPanel.add(emailField);controlPanel.add(addButton);controlPanel.add(updateButton);controlPanel.add(deleteButton);panel.add(controlPanel, BorderLayout.SOUTH);// 添加按钮功能addButton.addActionListener(e -> {int id = Integer.parseInt(idField.getText());String name = nameField.getText();String email = emailField.getText();model.addRow(new Object[]{id, name, email});});updateButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(idField.getText(), selectedRow, 0);model.setValueAt(nameField.getText(), selectedRow, 1);model.setValueAt(emailField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}// 创建产品信息面板private JPanel createProductPanel() {JPanel panel = new JPanel(new BorderLayout());String[] columnNames = {"ID", "Name", "Price"};DefaultTableModel model = new DefaultTableModel(columnNames, 0);JTable table = new JTable(model);// 添加示例数据model.addRow(new Object[]{1, "Product A", 10.0});model.addRow(new Object[]{2, "Product B", 20.0});JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane, BorderLayout.CENTER);JPanel controlPanel = new JPanel();JTextField idField = new JTextField(5);JTextField nameField = new JTextField(10);JTextField priceField = new JTextField(10);JButton addButton = new JButton("Add");JButton updateButton = new JButton("Update");JButton deleteButton = new JButton("Delete");controlPanel.add(new JLabel("ID:"));controlPanel.add(idField);controlPanel.add(new JLabel("Name:"));controlPanel.add(nameField);controlPanel.add(new JLabel("Price:"));controlPanel.add(priceField);controlPanel.add(addButton);controlPanel.add(updateButton);controlPanel.add(deleteButton);panel.add(controlPanel, BorderLayout.SOUTH);// 添加按钮功能addButton.addActionListener(e -> {int id = Integer.parseInt(idField.getText());String name = nameField.getText();double price = Double.parseDouble(priceField.getText());model.addRow(new Object[]{id, name, price});});updateButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(idField.getText(), selectedRow, 0);model.setValueAt(nameField.getText(), selectedRow, 1);model.setValueAt(priceField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}// 创建订单信息面板private JPanel createOrderPanel() {JPanel panel = new JPanel(new BorderLayout());String[] columnNames = {"Order ID", "Product ID", "Quantity"};DefaultTableModel model = new DefaultTableModel(columnNames, 0);JTable table = new JTable(model);// 添加示例数据model.addRow(new Object[]{1, 1, 2});model.addRow(new Object[]{2, 2, 1});JScrollPane scrollPane = new JScrollPane(table);panel.add(scrollPane, BorderLayout.CENTER);JPanel controlPanel = new JPanel();JTextField orderIdField = new JTextField(5);JTextField productIdField = new JTextField(5);JTextField quantityField = new JTextField(5);JButton addButton = new JButton("Add");JButton updateButton = new JButton("Update");JButton deleteButton = new JButton("Delete");controlPanel.add(new JLabel("Order ID:"));controlPanel.add(orderIdField);controlPanel.add(new JLabel("Product ID:"));controlPanel.add(productIdField);controlPanel.add(new JLabel("Quantity:"));controlPanel.add(quantityField);controlPanel.add(addButton);controlPanel.add(updateButton);controlPanel.add(deleteButton);panel.add(controlPanel, BorderLayout.SOUTH);// 添加按钮功能addButton.addActionListener(e -> {int orderId = Integer.parseInt(orderIdField.getText());int productId = Integer.parseInt(productIdField.getText());int quantity = Integer.parseInt(quantityField.getText());model.addRow(new Object[]{orderId, productId, quantity});});updateButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(orderIdField.getText(), selectedRow, 0);model.setValueAt(productIdField.getText(), selectedRow, 1);model.setValueAt(quantityField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}
}```javaint selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.setValueAt(orderIdField.getText(), selectedRow, 0);model.setValueAt(productIdField.getText(), selectedRow, 1);model.setValueAt(quantityField.getText(), selectedRow, 2);}});deleteButton.addActionListener(e -> {int selectedRow = table.getSelectedRow();if (selectedRow != -1) {model.removeRow(selectedRow);}});return panel;}
}

代码解释

  1. 主类 (MainApp.java):

    • 这是程序的入口点,创建并显示登录界面 LoginFrame
  2. 登录框架 (LoginFrame.java):

    • 包含用户名和密码输入框以及登录和取消按钮。
    • 验证用户名和密码,成功后打开主界面 MainFrame,否则显示错误信息。
  3. 主框架 (MainFrame.java):

    • 包含一个 JTabbedPane,其中有三个选项卡:用户信息、产品信息和订单信息。
    • 每个选项卡都有一个表格和一些控制按钮,用于添加、更新和删除表格中的数据。
  4. 用户信息面板 (createUserPanel):

    • 包含一个表格显示用户信息和一些控制按钮。
    • 添加按钮、更新按钮和删除按钮允许用户对表格数据进行操作。
  5. 产品信息面板 (createProductPanel):

    • 类似于用户信息面板,但用于显示和管理产品信息。
  6. 订单信息面板 (createOrderPanel):

    • 类似于用户信息面板,但用于显示和管理订单信息。

相关文章:

【小学期】常用基于Swing的七个静态界面

示例1&#xff1a;基本的带按钮和标签的界面 import javax.swing.*; import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_C…...

JavaScript高级程序设计(第四版)--学习记录之迭代器与生成器(上)

什么是迭代&#xff1f; 迭代的意思是按照顺序反复多次执行一段程序。循环是迭代机制的基础&#xff0c;因为它可以指定迭代的次数&#xff0c;以及每次迭代要执行的操作。 迭代器模式 迭代器模式描述了一个方案&#xff0c;可以把有些结构称为“可迭代对象” &#xff0c;这些…...

51单片机第9步_结构和联合

本章重点学习结构和联合。 //结构和联合应用举例 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf();向串口发送一串字节; /…...

lua5.3.4的Linux的库文件下载地址

从这个链接选lua5.3.4 Lua Binaries (sourceforge.net) 进入-> 这个页面 LuaBinaries - Browse /5.3.4/Linux Libraries at SourceForge.net 之后就可以下载了。...

网盘挂载系统-知识资源系统-私域内容展示系统

系统介绍&#xff1a; 存储&#xff1a;一共支持约30款云盘存储&#xff0c;其中包括主流的&#xff08;百度网盘、阿里云盘、夸克云盘、迅雷云盘、蓝奏云、天翼云盘&#xff09;&#xff0c;部分展示 以及特别的&#xff08;一刻相册、对象存储、又拍云存储、SFTP、MEGA 网盘…...

水位自动监测摄像机

随着科技的不断进步&#xff0c;水位自动监测摄像机作为现代智能监控技术的重要应用&#xff0c;正在广泛应用于水利工程、防洪管理和环境监测等领域&#xff0c;显著提升了监测效率和数据准确性。水位自动监测摄像机利用高精度摄像头和先进的图像处理技术&#xff0c;能够实时…...

基于SSM+Jsp的疫情居家办公OA系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…...

phpstorm2024代码总是提示“no usages”或者“无用法”解决办法

问题&#xff1a;phpstorm2024使用时&#xff0c;总是会提示无用法&#xff0c;如果没有安装中文语言包的情况下会提示&#xff1a;no usages&#xff0c;如果想关闭怎么办&#xff1f; 编译器右上角点击齿轮进入设置&#xff0c;按照下图的方法点击即可关闭。或者在编译器的“…...

Unity WebGL项目问题记录

一、资源优化 可通过转换工具配套提供的资源优化工具&#xff0c;将游戏内纹理资源针对webgl导出做优化。 工具入口&#xff1a; 工具介绍 Texture 搜索规则介绍 已开启MipMap: 搜索已开启了MipMap的纹理。 NPOT: 搜索非POT图片。 isReadable: 搜索已开启readable纹理。 …...

如何级联移位寄存器(74HC595)

在这个项目中&#xff0c;我们将使用 74HC595 移位寄存器将 2 个移位寄存器级联在一起。这样级联移位寄存器现在可以控制 16 个输出。 当然您可以级联任意数量的移位寄存器。如果您要级联第三个移位寄存器&#xff0c;它可以控制 24 个输出。如果您级联第四个移位寄存器&#x…...

找到你的专属健康食谱:结合肠道菌群与疾病状态

谷禾健康 俗话说&#xff1a;“病从口入”。饮食是决定个人健康状况的重要因素&#xff0c;饮食与疾病的发展有关&#xff0c;特别是胃肠道(GI)疾病。 与膳食相关的症状发生率很高&#xff0c;例如在吸收不良(如乳糖不耐症)情况下出现的腹痛和腹泻&#xff1b;乳糜泻、食物过敏…...

大模型微调实战之基于星火大模型的群聊对话分角色要素提取挑战赛:Task01:跑通Baseline

目录 0 背景1 环境配置1.1 下载包1.2 配置密钥1.3 测试模型 2 解决问题2.1 获取数据2.2 设计Prompt2.2 设计处理函数2.3 开始提取 附全流程代码 0 背景 Datawhale AI夏令营第二期开始啦&#xff0c;去年有幸参与过第一期&#xff0c;收获很多&#xff0c;这次也立马参与了第二…...

大数据开发如何管理项目

在面试的时候总是 会问起项目&#xff0c;那在大数据开发的实际工作中&#xff0c;如何做好一个项目呢&#xff1f; 目录 1. 需求分析与项目规划1.1 需求收集与梳理1.2 可行性分析1.3 项目章程与计划 2. 数据准备与处理2.1 数据源接入2.2 数据仓库建设2.3 数据质量管理 3. 系统…...

在实施数据加密时,有哪些常见的加密技术可供选择?

在实施数据加密时&#xff0c;有哪些常见的加密技术可供选择&#xff1f; 在实施数据加密时&#xff0c;有许多常见的加密技术可供选择&#xff0c;这些技术根据其原理、安全性、效率和适用场景有所不同。以下是一些常见的加密技术&#xff1a; 对称加密&#xff08;Symmetri…...

容易涨粉的视频素材有哪些?容易涨粉的爆款短素材库网站分享

如何挑选社交媒体视频素材&#xff1a;顶级视频库推荐 在社交媒体上脱颖而出&#xff0c;视频素材的选择至关重要。以下是一些顶级的视频素材网站推荐&#xff0c;不仅可以提升视频质量&#xff0c;还能帮助你吸引更多粉丝。 蛙学网&#xff1a;创意的源泉 作为创意和独特性的…...

2024 CISCN 华东北分区赛-Ahisec

Ahisec战队 WEB python-1 break 源码如下&#xff1a; # -*- coding: UTF-8 -*-from flask import Flask, request,render_template,render_template_stringapp Flask(__name__)def blacklist(name):blacklists ["print","cat","flag",&q…...

Linux驱动开发笔记(十三)Sysfs文件系统

文章目录 前言一、Sysfs1.1 Sysfs的引入1.2 Sysfs的目录结构1.2 Sysfs的目录详解1.2.1 devices1.2.2 bus1.2.3 class1.2.4 devices、bus、class目录之间的关系1.2.5 其他子目录 二、Sysfs使用2.1 核心数据结构2.2 相关函数2.2.1 kobject_create_and_add2.2.2 kobject_put()2.2.…...

Numpy array和Pytorch tensor的区别

1.Numpy array和Pytorch tensor的区别 笔记来源&#xff1a; 1.Comparison between Pytorch Tensor and Numpy Array 2.numpy.array 4.Tensors for Neural Networks, Clearly Explained!!! 5.What is a Tensor in Machine Learning? 1.1 Numpy Array Numpy array can only h…...

【面试系列】数据科学家 高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…...

mysql是什么

mysql是什么 是DBMS软件系统&#xff0c;并不是一个数据库&#xff0c;管理数据库 DBMS相当于用户和数据库之间的桥梁&#xff0c;有超过300种不同的dbms系统 mysql是关系型数据库&#xff0c;关系型数据库存储模型很想excel&#xff0c;用行和列组织数据 sql是一门编程语言…...

【软件工程】【22.04】p1

关键字&#xff1a; 软件需求规约基本性质、数据字典构成、内聚程度最高功能内聚、公有属性、RUP实体类、评审、测试序列、软件确认过程、CMMI能力等级 软件需求分类、DFD数据流图组成&#xff08;实体&#xff09;、经典详细设计、数据耦合、关联多重性、状态图、黑盒测试、…...

简单说下GPT-4

ChatGPT 4.0&#xff0c;是OpenAI开发的基于GPT-4架构的大型语言模型。它在多个方面相较于前代版本有了显著的改进。以下是从专业角度对ChatGPT 4.0的详解&#xff1a; 架构与训练 1. **架构**&#xff1a;GPT-4采用的是变压器&#xff08;Transformer&#xff09;架构&#x…...

力扣第一道困难题《3. 无重复字符的最长子串》,c++

目录 方法一&#xff1a; 方法二&#xff1a; 方法三&#xff1a; 方法四&#xff1a; 没有讲解&#xff0c;但给出了优秀题解 本题链接&#xff1a;4. 寻找两个正序数组的中位数 - 力扣&#xff08;LeetCode&#xff09; 话不多说&#xff0c;我们直接开始进行本题的思路解…...

【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号

在Ubuntu系统中,你可以使用多种方法来查找某个头文件的路径。这里有几种常用的方法: 使用find命令: find命令是一个非常强大的工具,可以在文件系统中搜索匹配特定条件的文件。例如,如果你想查找名为stdio.h的头文件,可以使用以下命令:bash 复制代码 sudo find / -name …...

C++ 运算符的优先级和结合性表

优先级和结合性表 优先级运算符描述结合性1::作用域解析运算符左到右2() [] . -> --后缀运算符左到右3 -- - ! ~ * & sizeof new delete typeid一元运算符右到左4* / %乘除取模左到右5 -加法和减法左到右6<< >>左移和右移左到右7< < > >关系…...

MySQL中SQL语句的执行过程详解

1. 客户端连接和请求 客户端连接 在MySQL中&#xff0c;客户端连接和请求过程是执行SQL语句的第一步。该步骤主要涉及客户端如何连接到MySQL服务器&#xff0c;以及如何维护和管理客户端与服务器之间的会话。 客户端连接&#xff1a; 连接器&#xff08;Connector&#xff09…...

文心一言4.0免费使用

领取&安装链接&#xff1a;Baidu Comate 领取季卡 视频教程&#xff1a;免费使用文心一言4.0大模型_哔哩哔哩_bilibili 有图有真相 原理&#xff1a;百度comate使用文心一言最新的4.0模型。百度comate目前免费使用&#xff0c;可以借助comate达到免费使用4.0模型目的。 …...

Mongodb安装与配置

Mongodb的下载 这里下载的是MongoDB 7.0.11版本的 首先进入官网&#xff1a;https://www.mongodb.com/ 点击完上面两步后&#xff0c;加载来到该页面&#xff0c;选择自己的版本、系统&#xff0c;是压缩包(zip)还是安装包(msi)。 下载好之后能&#xff0c;来到安装包哪里&a…...

Java校园跑腿小程序校园代买帮忙外卖源码社区外卖源码

&#x1f525;校园跑腿与外卖源码揭秘&#x1f525; &#x1f680; 引言&#xff1a;为何需要校园跑腿与外卖源码&#xff1f; 在快节奏的校园生活里&#xff0c;学生们对于便捷、高效的服务需求日益增长。校园跑腿和外卖服务成为了解决这一需求的热门选择。然而&#xff0c;…...

MySQL高级-MVCC-基本概念(当前读、快照读)

文章目录 1、MVCC基本概念1.1、当前读1.1.1、创建表 stu1.1.2、测试 1.2、快照读 1、MVCC基本概念 全称Multi-Version Concurrency Control&#xff0c;多版本并发控制。指维护一个数据的多个版本&#xff0c;使得读写操作没有冲突&#xff0c;快照读为MySQL实现MVCC提供了一个…...

kubernetes给指定用户分配调用k8s的api权限

文章目录 概要利用RBAC添加角色权限使用shell命令创建角色权限使用配置文件创建角色权限 调用k8s的api获取k8s账户的token 小结 概要 使用kubernetes部署项目时&#xff0c;有些特殊场景&#xff0c;我们需要在自己创建的pod里面调用k8s的api来管理k8s&#xff0c;但是需要使用…...

无人机的弱点和限制

1.电池和续航能力&#xff1a; 续航时间短&#xff1a;大多数无人机依赖锂电池供电&#xff0c;续航时间通常在30分钟至1小时之间&#xff0c;限制了其长时间任务的执行能力。 能量密度低&#xff1a;现有电池技术的能量密度无法满足长时间飞行需求&#xff0c;需要突破性的发…...

ElementUI的基本搭建

目录 1&#xff0c;首先在控制终端中输入下面代码&#xff1a;npm i element-ui -S 安装element UI 2&#xff0c;构架登录页面&#xff0c;login.vue​编辑 3&#xff0c;在官网获取对应所需的代码直接复制粘贴到对应位置 4&#xff0c;在继续完善&#xff0c;从官网添加…...

Modbus TCP与TCP/IP协议间的差异与应用场景

Modbus TCP概述 Modbus协议简介 Modbus是一种专为工业自动化系统设计的通信协议&#xff0c;采用主从模式&#xff0c;即一个主设备&#xff08;通常是计算机或可编程逻辑控制器&#xff09;与多个从设备&#xff08;如传感器、执行器等&#xff09;进行通信。Modbus协议具有…...

Linux Doxygen快速生成文档

此前写过一篇编写Doxygen格式的注释以用于生成文档,点击以查阅, Doxygen常用语法与字段记录,但是当时用的windows桌面版的doxygen,最近使用ubuntu编写代码想直接使用doxygen生成,故写下此博客 Doxygen Doxygen是一个用于生成软件文档的工具&#xff0c;它可以从代码中提取注释…...

MobPush REST API的推送 API之批量推送

调用验证 详情参见 REST API 概述的 鉴权方式 说明。 频率控制 详情参见推送限制策略的 接口限制 说明。 调用地址 POST http://api.push.mob.com/v3/push/createMulti 推送对象 以 JSON 格式表达&#xff0c;表示一条推送相关的所有信息 字段类型必须说明pushWorkobje…...

Arthas快速入门

简介 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类…...

python系列30:各种爬虫技术总结

1. 使用requests获取网页内容 以巴鲁夫产品为例&#xff0c;可以用get请求获取内容&#xff1a; https://www.balluff.com.cn/zh-cn/products/BES02YF 对应的网页为&#xff1a; 使用简单方法进行解析即可 import requests r BES02YF res requests.get("https://www.…...

PHP和phpSpider:如何应对反爬虫机制的封锁?

php和phpspider&#xff1a;如何应对反爬虫机制的封锁&#xff1f; 引言&#xff1a; 随着互联网的快速发展&#xff0c;对于大数据的需求也越来越大。爬虫作为一种抓取数据的工具&#xff0c;可以自动化地从网页中提取所需的信息。然而&#xff0c;由于爬虫的存在&#xff0c…...

学生宿舍管理系统

摘 要 随着高校规模的不断扩大和学生人数的增加&#xff0c;学生宿舍管理成为高校日常管理工作中的重要组成部分。传统的学生宿舍管理方式往往依赖于纸质记录和人工管理&#xff0c;这种方式不仅效率低下&#xff0c;而且容易出错&#xff0c;无法满足现代高校管理的需求。因此…...

一分钟彻底掌握Java迭代器Iterator

Iterator Iterator 是 Java 的 java.util 包中的一个接口 iterator() 是 Java 集合框架中的一个方法&#xff0c;它返回一个 Iterator 对象&#xff0c;该对象可以用来遍历集合中的元素。 Iterator确实是一个接口&#xff0c;你不能直接实例化一个接口。但是&#xff0c;你可以…...

第三十七篇——麦克斯韦的妖:为什么要保持系统的开放性?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 如果没有详细的学习这篇文章&#xff0c;我觉得我就是被麦克斯韦妖摆弄的…...

青岛网站建设一般多少钱

青岛网站建设的价格一般会根据网站的规模、功能、设计风格等因素来定&#xff0c;价格会存在着一定的差异。一般来说&#xff0c;一个简单的网站建设可能在数千元到一万元之间&#xff0c;而一个复杂的大型网站建设可能会需要数万元到数十万元不等。所以在选择网站建设服务时&a…...

Linux 进程状态:TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE

文章目录 1. 前言2. TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE2.1 语义2.2 实现2.2.1 TASK_INTERRUPTIBLE 实现2.2.1.1 等待的条件成立时 唤醒2.2.1.2 信号 唤醒2.2.1.3 中断 唤醒2.2.1.3.1 内核态的处理过程2.2.1.3.2 用户态的处理过程 2.2.2 TASK_UNINTERRUPTIBLE 实现 2.…...

vue3使用vant4的列表vant-list点击进入详情自动滚动到对应位置,踩坑日记(一天半的踩坑经历)

1.路由添加keepAlive <!-- Vue3缓存组件&#xff0c;写法和Vue2不一样--><router-view v-slot"{ Component }"><keep-alive><component :is"Component" v-if"$route.meta.keepAlive"/></keep-alive><component…...

Linux的fwrite函数

函数原型: 向文件fp中写入writeBuff里面的内容 int fwrite(void*buffer&#xff0c;intsize&#xff0c;intcount&#xff0c;FILE*fp) /* * description : 对已打开的流进行写入数据块 * param ‐ ptr &#xff1a;指向 数据块的指针 * param ‐ size &#xff1a;指定…...

python udsoncan 详解

python udsoncan 详解 udsoncan 是一个Python库&#xff0c;用于实现汽车统一诊断服务&#xff08;Unified Diagnostic Services&#xff0c;UDS&#xff09;协议。UDS是一种用于汽车诊断的标准化通信协议&#xff0c;它定义了一系列的服务和流程&#xff0c;用于ECU&#xff…...

基于自组织长短期记忆神经网络的时间序列预测(MATLAB)

LSTM是为了解决RNN 的梯度消失问题而诞生的特殊循环神经网络。该网络开发了一种异于普通神经元的节点结构&#xff0c;引入了3 个控制门的概念。该节点称为LSTM 单元。LSTM 神经网络避免了梯度消失的情况&#xff0c;能够记忆更长久的历史信息&#xff0c;更能有效地拟合长期时…...

240629_昇思学习打卡-Day11-Vision Transformer中的self-Attention

240629_昇思学习打卡-Day11-Transformer中的self-Attention 根据昇思课程顺序来看呢&#xff0c;今儿应该看Vision Transformer图像分类这里了&#xff0c;但是大概看了一下官方api&#xff0c;发现我还是太笨了&#xff0c;看不太明白。正巧昨天学SSD的时候不是参考了太阳花的…...

代码随想录-Day43

52. 携带研究材料&#xff08;第七期模拟笔试&#xff09; 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等…...

不同操作系统下的换行符

1. 关键字2. 换行符的比较3. ASCII码4. 修改换行符 4.1. VSCode 5. 参考文档 1. 关键字 CR LF CRLF 换行符 2. 换行符的比较 英文全称英文缩写中文含义转义字符ASCII码值操作系统Carriage ReturnCR回车\r13MacIntosh&#xff08;早期的Mac&#xff09;LinefeedLF换行/新行\…...

2024高考作文题“人工智能”

今年开年到现在&#xff0c;明显的感受就是&#xff0c;咨询人工智能机器人的客户比往年更多了。什么原因&#xff0c;是因为人工成本太高了&#xff0c;今年整体经济环境变差&#xff0c;招不起人&#xff0c;所以想用AI机器人来降低用工成本吗&#xff1f; 还是说因为语音线路…...

一套JAVA产科信息管理系统源码,从第一次产前检查开始,贯穿分娩和产后42天随访全程 完善的孕产妇保健信息化管理平台源码

一套JAVA产科信息管理系统源码&#xff0c;从第一次产前检查开始&#xff0c;贯穿分娩和产后42天随访全程 完善的孕产妇保健信息化管理平台源码 产科管理系统全程电子病历实现孕产妇自初诊建卡&#xff0c;到产检&#xff0c;住院分娩及产后随访全过程的电子病历。支持预产期、…...

JavaScript 实用技巧(二)

JavaScript 实用技巧&#xff1a;提升你的编程效率 JavaScript 是一种广泛使用和极具表现力的编程语言。为了帮助你更高效地编写代码&#xff0c;本文将介绍一些实用的 JavaScript 技巧。掌握这些技巧将有助于提高你的编程速度和代码质量。 1. 交换变量的值 不需要使用临时变…...

机器学习--概念理解

知识点 一、机器学习概述 人工智能 机器学习 深度学习 学习的范围&#xff1a;模式识别、数据挖掘、统计学习、计算机视觉、语音识别、自然语言处理 可以解决的问题&#xff1a;给定数据的预测问题 二、机器学习的类型 监督学习 分类 回归 无监督学习 聚类 降维 强化…...

高可用电商返利APP架构设计与实现分享

高可用电商返利APP架构设计与实现分享 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨高可用电商返利APP的架构设计与实现&#xff0c;这是保…...

依米康300249.SZ:长期为百度提供数据中心温控设备和部分微模块的施

:长期为百度提供数据中心温控设备和部分微模块的施工、安装等服务)格隆汇6月14日丨有投资者于投资者互动平台向依米康提问,“百度是公司的重要客户吗?公司与百度的合作主要是在哪方面呢?”,公司回复称,百度一直都是公司重要客户,公司长期为百度提供数据中心温控设备和部分…...

入境游复苏拉动旅游消费,免税、餐饮、酒店等行业迎来利好

随着疫情防控常态化,中国入境旅游市场正逐步回暖,跨境游消费呈现复苏态势。有分析预测,入境游景气复苏将与消费内生增长动力恢复形成合力,对服务消费相关的多业态产生正向辐射效应。免税、餐饮、酒店作为旅游消费三大支柱行业,有望受益于入境游复苏带来的红利。免税行业迎…...

CSS浮动详细教学(CSS从入门到精通学习第四天)

css第04天 一、其他样式 1、圆角边框 在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。 border-radius 属性用于设置元素的外边框圆角。 语法&#xff1a; border-radius:length; 参数值可以为数值或百分比的形式如果是正方形&…...

MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案

一、找不到my.ini配置文件 MySQL 8 安装或启动过程中&#xff0c;如果系统找不到my.ini文件&#xff0c;通常意味着 MySQL服务器没有找到其配置文件。在Windows系统上&#xff0c;MySQL 8 预期使用my.ini作为配置文件&#xff0c;而不是在某些情况下用到的my.cnf文件。 通过 …...

DETR整体模型结构解析

DETR流程 Backbone用卷积神经网络抽特征。最后通过一层1*1卷积转化到d_model维度fm&#xff08;B,d_model,HW&#xff09;。 position embedding建立跟fm维度相同的位置编码(B&#xff0c;d_model,HW&#xff09;。 Transformer Encoder,V为fm&#xff0c;K&#xff0c;Q为fm…...

普华永道调查:“拥抱AI”的行业正呈现出生产率激增景象

全球知名四大会计师事务所之一的普华永道最新报告显示&#xff0c;一些最有可能将人工智能技术融入业务的企业&#xff0c;其生产率增长速度几乎是其他行业的5倍&#xff0c;这有望推动整体经济。周二&#xff08;5月21日&#xff09;发布的报告称&#xff0c;2018年至2022年间…...