色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Swing+JDBC+MySQL畢業(yè)設(shè)計系統(tǒng):輕量可控的Java桌面應(yīng)用實踐

Swing+JDBC+MySQL畢業(yè)設(shè)計系統(tǒng):輕量可控的Java桌面應(yīng)用實踐 簡介本資源是一套基于Java桌面開發(fā)的畢業(yè)設(shè)計選題管理系統(tǒng)實戰(zhàn)項目面向計算機專業(yè)本科生、Java初學(xué)者及課程設(shè)計實踐者解決高校畢業(yè)設(shè)計環(huán)節(jié)中師生選題、命題、審核與數(shù)據(jù)管理的信息化需求。項目采用Swing構(gòu)建圖形界面JDBC連接MySQL實現(xiàn)數(shù)據(jù)持久化完整覆蓋用戶權(quán)限控制、題目發(fā)布、學(xué)生選題、管理員審核及查詢統(tǒng)計等核心業(yè)務(wù)流程。壓縮包共18個文件含12個Java源碼涵蓋UI、DAO、Entity等分層邏輯、1份SQL建庫腳本、1份詳盡的數(shù)據(jù)庫表設(shè)計文檔.doc與.md雙格式、1個可運行jar包及配套依賴jar整體4.61MB結(jié)構(gòu)清晰便于逐模塊學(xué)習(xí)與調(diào)試。已有1532人下載學(xué)習(xí)提供開箱即用的完整工程結(jié)構(gòu)、規(guī)范的數(shù)據(jù)庫設(shè)計說明與典型SwingJDBC集成實踐是掌握Java GUI開發(fā)、數(shù)據(jù)庫交互及多角色權(quán)限系統(tǒng)設(shè)計的優(yōu)質(zhì)教學(xué)案例。1. 為什么用 Swing JDBC MySQL 做畢業(yè)設(shè)計選題管理系統(tǒng)反而比 Spring Boot 更穩(wěn)、更可控、更適合答辯這不是一個“過時技術(shù)堆砌”的懷舊項目而是一類明確面向教學(xué)閉環(huán)、輕量級部署、零運維依賴的典型 Java 畢業(yè)設(shè)計落地場景學(xué)生要獨立完成從數(shù)據(jù)庫建模、界面交互、業(yè)務(wù)邏輯到本地可演示的全鏈路且評審老師只關(guān)心“能不能跑通”“邏輯清不清”“數(shù)據(jù)存不存得住”不關(guān)心高并發(fā)、微服務(wù)或云原生。Swing 提供開箱即用的桌面 GUIJDBC 直連 MySQL 避開 ORM 抽象層帶來的黑匣子比如 MyBatis 的 XML 映射錯位、Spring Boot 自動配置沖突MySQL 本地安裝簡單、命令直觀、日志清晰——三者組合恰恰構(gòu)成了一條最短路徑驗證能力的技術(shù)棧。尤其當(dāng)學(xué)生面對“Java 環(huán)境配不起來”“Maven 依賴拉不下來”“Tomcat 啟動報 404”這類高頻翻車點時Swing 程序雙擊 jar 就能運行JDBC 連接字符串寫死在代碼里也一目了然MySQL 用mysqld --console就能看到實時 SQL 執(zhí)行日志。這不是倒退而是把注意力精準(zhǔn)錨定在“業(yè)務(wù)邏輯是否自洽”這個核心上。適合大三下至大四上、Java 基礎(chǔ)扎實但工程經(jīng)驗尚淺、需在 46 周內(nèi)交付可演示、可講解、可調(diào)試的完整系統(tǒng)的學(xué)生。2. 從零搭建用 Swing 構(gòu)建可交互的選題管理主界面不是拖控件而是用代碼控布局Swing 不是“拖拽完就交差”的玩具它的價值在于完全掌控 UI 生命周期與事件流。畢業(yè)設(shè)計選題系統(tǒng)的核心界面必須支持教師發(fā)布課題、學(xué)生查看/選擇/撤回、管理員審核/統(tǒng)計——這些操作不能靠JFrame默認布局糊弄必須用BorderLayoutGridBagLayout混合嵌套保證不同角色登錄后動態(tài)切換功能區(qū)同時避免組件重疊、縮放錯亂等玄學(xué)問題。2.1 主窗口結(jié)構(gòu)用 BorderLayout 劃分功能區(qū)避免嵌套失控主窗口采用BorderLayout作為頂層容器這是 Swing 中最穩(wěn)定、最易理解的布局策略。頂部放角色標(biāo)識欄顯示“當(dāng)前用戶張三學(xué)生”中部用JTabbedPane承載不同角色視圖教師 tab / 學(xué)生 tab / 管理員 tab底部固定狀態(tài)欄顯示“已連接 MySQL 8.0.33”。這種結(jié)構(gòu)的好處是各區(qū)域職責(zé)單一add(Component, BorderLayout.CENTER)等調(diào)用語義清晰不會像GroupLayout那樣因 IDE 自動生成代碼導(dǎo)致維護困難。public class MainFrame extends JFrame { private JTabbedPane tabbedPane; private JLabel statusLabel; public MainFrame() { setTitle(畢業(yè)設(shè)計選題管理系統(tǒng)); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); // 頂部角色信息欄 JPanel topPanel new JPanel(new FlowLayout(FlowLayout.LEFT)); topPanel.add(new JLabel(當(dāng)前用戶)); JLabel userLabel new JLabel(未登錄); topPanel.add(userLabel); add(topPanel, BorderLayout.NORTH); // 中部選項卡面板后續(xù)動態(tài)填充 tabbedPane new JTabbedPane(); add(tabbedPane, BorderLayout.CENTER); // 底部狀態(tài)欄 JPanel bottomPanel new JPanel(new FlowLayout(FlowLayout.RIGHT)); statusLabel new JLabel(未連接數(shù)據(jù)庫); bottomPanel.add(statusLabel); add(bottomPanel, BorderLayout.SOUTH); pack(); setLocationRelativeTo(null); setVisible(true); } public void updateStatus(String msg) { statusLabel.setText(msg); } }提示pack()必須在所有組件添加完畢后調(diào)用否則窗口尺寸異常setLocationRelativeTo(null)讓窗口居中顯示比setBounds()更適配不同分辨率屏幕。2.2 學(xué)生選題 Tab用 GridBagLayout 實現(xiàn)緊湊表單解決字段對齊難題學(xué)生 Tab 需要展示課題列表JTable、篩選條件JComboBoxJTextField、操作按鈕“選擇”“撤回”“刷新”。若用FlowLayout或GridLayout會導(dǎo)致“課題名稱”文本框過寬、“專業(yè)方向”下拉框過窄、“選擇”按鈕被擠到角落。GridBagLayout是唯一能精確控制每個組件權(quán)重、填充方式、內(nèi)外邊距的方案。關(guān)鍵參數(shù)說明gridwidth GridBagConstraints.REMAINDER讓“刷新”按鈕獨占一行weightx 1.0讓課題表格水平撐滿fill GridBagConstraints.BOTH讓表格填滿分配空間insets new Insets(5,5,5,5)統(tǒng)一內(nèi)外邊距避免視覺粘連。private JPanel createStudentTab() { JPanel panel new JPanel(new GridBagLayout()); GridBagConstraints gbc new GridBagConstraints(); gbc.insets new Insets(5, 5, 5, 5); gbc.fill GridBagConstraints.HORIZONTAL; // 篩選行 gbc.gridx 0; gbc.gridy 0; gbc.weightx 0.3; panel.add(new JLabel(專業(yè)方向), gbc); gbc.gridx 1; gbc.weightx 0.7; JComboBoxString majorCombo new JComboBox(new String[]{計算機科學(xué), 軟件工程, 人工智能}); panel.add(majorCombo, gbc); gbc.gridx 0; gbc.gridy 1; gbc.weightx 0.3; panel.add(new JLabel(關(guān)鍵詞), gbc); gbc.gridx 1; gbc.weightx 0.7; JTextField keywordField new JTextField(20); panel.add(keywordField, gbc); // 表格使用 DefaultTableModel 動態(tài)填充 gbc.gridx 0; gbc.gridy 2; gbc.gridwidth 2; gbc.weighty 1.0; gbc.fill GridBagConstraints.BOTH; JTable table new JTable(new DefaultTableModel( new Object[][]{}, new String[]{ID, 課題名稱, 指導(dǎo)教師, 專業(yè)方向, 狀態(tài)} )); JScrollPane scrollPane new JScrollPane(table); panel.add(scrollPane, gbc); // 按鈕行 gbc.gridy 3; gbc.gridwidth GridBagConstraints.REMAINDER; gbc.fill GridBagConstraints.NONE; gbc.anchor GridBagConstraints.EAST; JPanel buttonPanel new JPanel(new FlowLayout(FlowLayout.RIGHT)); buttonPanel.add(new JButton(選擇)); buttonPanel.add(new JButton(撤回)); buttonPanel.add(new JButton(刷新)); panel.add(buttonPanel, gbc); return panel; }注意JTable的DefaultTableModel必須在構(gòu)造時傳入空數(shù)據(jù)和列名后續(xù)用addRow(Object[])動態(tài)追加不能直接修改Vector內(nèi)部數(shù)據(jù)——否則表格不刷新。這是 Swing 事件模型的硬性約定不是 bug。3. 數(shù)據(jù)驅(qū)動用 JDBC 直連 MySQL繞過 ORM 黑箱把每一條 SQL 都攥在手里JDBC 不是“老古董”而是調(diào)試友好性與教學(xué)透明度的終極保障。當(dāng)學(xué)生在答辯現(xiàn)場被問“你查課題用了什么 SQL怎么防止 SQL 注入事務(wù)在哪提交”時手寫PreparedStatement的代碼就是最硬的底氣。MyBatis 的if標(biāo)簽、Spring 的Transactional注解在答辯環(huán)節(jié)反而容易暴露理解盲區(qū)——而conn.prepareStatement(SELECT * FROM topic WHERE major ? AND status ?)這一行誰都看得懂、改得動、斷點跟得進。3.1 連接池不是必需品HikariCP 對畢業(yè)設(shè)計是過度設(shè)計DriverManager 足夠穩(wěn)很多教程一上來就教 HikariCP但對單機演示系統(tǒng)它帶來的復(fù)雜度遠超收益要配application.properties、要處理DataSource注入、要理解連接泄漏檢測閾值。畢業(yè)設(shè)計階段用DriverManager.getConnection()直連配合try-with-resources自動關(guān)閉既安全又清爽。MySQL 8 驅(qū)動必須用com.mysql.cj.jdbc.DriverURL 格式強制要求serverTimezone參數(shù)否則ResultSet.getDate()返回 nullpublic class DatabaseConnection { private static final String URL jdbc:mysql://localhost:3306/thesis_db?useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrue; private static final String USER root; private static final String PASSWORD 123456; public static Connection getConnection() throws SQLException { try { Class.forName(com.mysql.cj.jdbc.Driver); // 顯式加載驅(qū)動避免 ClassNotFoundException } catch (ClassNotFoundException e) { throw new RuntimeException(MySQL JDBC Driver not found, e); } return DriverManager.getConnection(URL, USER, PASSWORD); } }血淚經(jīng)驗allowPublicKeyRetrievaltrue是 MySQL 8.0.28 的強制要求否則拋Public Key Retrieval is not allowed異常useSSLfalse在本地開發(fā)環(huán)境可關(guān)閉 SSL避免證書配置麻煩——這不等于生產(chǎn)環(huán)境可忽略安全而是教學(xué)場景下優(yōu)先保證連通性。3.2 CRUD 封裝用泛型 DAO 統(tǒng)一模板但絕不隱藏 SQLDAO 層不是為了炫技而是為了讓增刪改查邏輯集中、可審計、可替換。我們不封裝成topicService.save(topic)而是寫成TopicDao.insert(topic)方法體內(nèi)明明白白寫著INSERT INTO topic (...) VALUES (?, ?, ?)。這樣學(xué)生能一眼看出字段順序是否與數(shù)據(jù)庫一致、?占位符個數(shù)是否匹配、executeUpdate()返回值是否為 1表示成功插入一行。public class TopicDao { public static int insert(Topic topic) throws SQLException { String sql INSERT INTO topic (title, teacher, major, description, status) VALUES (?, ?, ?, ?, ?); try (Connection conn DatabaseConnection.getConnection(); PreparedStatement ps conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) { ps.setString(1, topic.getTitle()); ps.setString(2, topic.getTeacher()); ps.setString(3, topic.getMajor()); ps.setString(4, topic.getDescription()); ps.setString(5, topic.getStatus()); // 待選 / 已選 / 已審核 int rowsAffected ps.executeUpdate(); if (rowsAffected 1) { try (ResultSet rs ps.getGeneratedKeys()) { if (rs.next()) { topic.setId(rs.getInt(1)); // 獲取自增主鍵 } } } return rowsAffected; } } public static ListTopic findByMajorAndStatus(String major, String status) throws SQLException { String sql SELECT id, title, teacher, major, description, status FROM topic WHERE major ? AND status ?; try (Connection conn DatabaseConnection.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { ps.setString(1, major); ps.setString(2, status); ListTopic topics new ArrayList(); try (ResultSet rs ps.executeQuery()) { while (rs.next()) { Topic t new Topic(); t.setId(rs.getInt(id)); t.setTitle(rs.getString(title)); t.setTeacher(rs.getString(teacher)); t.setMajor(rs.getString(major)); t.setDescription(rs.getString(description)); t.setStatus(rs.getString(status)); topics.add(t); } } return topics; } } }關(guān)鍵細節(jié)ps.executeUpdate()返回受影響行數(shù)必須校驗是否為 1否則可能是字段類型不匹配如VARCHAR插入超長字符串被截斷或唯一鍵沖突Statement.RETURN_GENERATED_KEYS參數(shù)讓getGeneratedKeys()可用這是獲取自增 ID 的標(biāo)準(zhǔn)方式比SELECT LAST_INSERT_ID()更安全。4. 避坑Swing JDBC MySQL 組合下90% 的翻車都發(fā)生在這 4 個地方Swing 界面卡頓、JDBC 連不上、MySQL 字段存亂碼、事務(wù)不生效……這些不是“運氣不好”而是有跡可循的共性陷阱。以下是我?guī)н^ 17 屆畢設(shè)學(xué)生總結(jié)出的最高頻、最隱蔽、最容易被答辯老師揪住的 4 類問題每一條都附帶現(xiàn)象、根因和可立即執(zhí)行的修復(fù)動作。4.1 現(xiàn)象Swing 界面點擊按鈕無反應(yīng)Console 無任何輸出原因事件監(jiān)聽器未正確綁定或ActionListener寫在了非 EDTEvent Dispatch Thread線程中導(dǎo)致 GUI 線程阻塞。常見于在SwingWorker外部直接調(diào)用耗時 JDBC 操作如TopicDao.findByMajorAndStatus()而沒做線程隔離。解決所有數(shù)據(jù)庫操作必須包裹在SwingWorker中done()方法里更新 UI。禁止在actionPerformed()里直接寫conn.prepareStatement(...)。// ? 正確耗時操作在后臺線程UI 更新在 EDT new SwingWorkerListTopic, Void() { Override protected ListTopic doInBackground() throws Exception { return TopicDao.findByMajorAndStatus(計算機科學(xué), 待選); } Override protected void done() { try { ListTopic topics get(); // get() 在 EDT 中執(zhí)行 updateTable(topics); // 安全更新 JTable } catch (Exception e) { JOptionPane.showMessageDialog(null, 查詢失敗 e.getMessage()); } } }.execute();4.2 現(xiàn)象MySQL 中中文顯示為??但 Navicat 查看正常原因JDBC URL 缺少characterEncodingutf8mb4或 MySQL 服務(wù)端my.cnf中collation-server未設(shè)為utf8mb4_unicode_ci。即使數(shù)據(jù)庫、表、字段都是 utf8mb4JDBC 連接層默認用 latin1 解碼。解決在 JDBC URL 末尾追加characterEncodingutf8mb4useUnicodetrue并確認 MySQL 服務(wù)重啟后生效# 檢查 MySQL 當(dāng)前編碼 mysql SHOW VARIABLES LIKE character_set%; mysql SHOW VARIABLES LIKE collation%; # 若 server 和 database 不是 utf8mb4修改 my.cnf 后重啟 [mysqld] character-set-server utf8mb4 collation-server utf8mb4_unicode_ci4.3 現(xiàn)象學(xué)生“選擇課題”后數(shù)據(jù)庫status字段仍為“待選”刷新界面不變原因JDBC 事務(wù)未提交。默認情況下Connection的autoCommit為true但若之前手動調(diào)用過conn.setAutoCommit(false)比如為實現(xiàn)“選題生成選題記錄”原子性后續(xù)忘記conn.commit()則所有 DML 操作在連接關(guān)閉時自動回滾。解決嚴格遵循“顯式開啟 → 執(zhí)行 → 顯式提交/回滾”流程用try-catch-finally保底Connection conn null; try { conn DatabaseConnection.getConnection(); conn.setAutoCommit(false); // 執(zhí)行 update status // 執(zhí)行 insert selection_record conn.commit(); // ? 必須顯式調(diào)用 } catch (SQLException e) { if (conn ! null) { try { conn.rollback(); } catch (SQLException ignored) {} } throw e; } finally { if (conn ! null) { try { conn.close(); } catch (SQLException ignored) {} } }4.4 現(xiàn)象JTable數(shù)據(jù)更新后界面不刷新或新行顯示在錯誤位置原因DefaultTableModel的addRow()方法必須在 EDT 中調(diào)用且不能在SwingWorker的doInBackground()里調(diào)用。更致命的是直接修改model.getDataVector()返回的Vector會破壞TableModel的事件通知機制。解決所有addRow()、removeRow()、setValueAt()必須在SwingWorker.done()或SwingUtilities.invokeLater()中執(zhí)行永遠不要碰getDataVector()// ? 正確通過 model 方法操作 DefaultTableModel model (DefaultTableModel) table.getModel(); model.setRowCount(0); // 清空 for (Topic t : topics) { model.addRow(new Object[]{ t.getId(), t.getTitle(), t.getTeacher(), t.getMajor(), t.getStatus() }); } // ? 錯誤直接改 Vector導(dǎo)致表格不刷新 Vector data model.getDataVector(); data.add(new Object[]{...}); // 不觸發(fā) fireTableRowsInserted()5. 真實可跑的最小可行系統(tǒng)3 個文件搞定登錄 選題 審核閉環(huán)一個畢業(yè)設(shè)計系統(tǒng)不需要 50 個類、2000 行代碼。我給學(xué)生定的硬性標(biāo)準(zhǔn)是核心功能登錄、查課題、選課題、審核能在 3 個 Java 文件里跑通且每個文件不超過 300 行。這逼著人聚焦本質(zhì)——數(shù)據(jù)庫設(shè)計、SQL 正確性、事件流完整性。下面給出經(jīng)過 2024 屆學(xué)生實測的精簡骨架復(fù)制粘貼即可編譯運行JDK 11MySQL 8.0。5.1 數(shù)據(jù)庫建表 SQL只保留最必要字段拒絕過度設(shè)計-- 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE IF NOT EXISTS thesis_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE thesis_db; -- 課題表 CREATE TABLE topic ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(200) NOT NULL, teacher VARCHAR(50) NOT NULL, major VARCHAR(50) NOT NULL, description TEXT, status ENUM(待選, 已選, 已審核) DEFAULT 待選, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 學(xué)生表簡化版僅存學(xué)號、姓名、專業(yè) CREATE TABLE student ( id INT PRIMARY KEY AUTO_INCREMENT, student_id VARCHAR(20) UNIQUE NOT NULL, name VARCHAR(50) NOT NULL, major VARCHAR(50) NOT NULL ); -- 選題記錄表關(guān)聯(lián)學(xué)生與課題 CREATE TABLE selection ( id INT PRIMARY KEY AUTO_INCREMENT, student_id VARCHAR(20) NOT NULL, topic_id INT NOT NULL, status ENUM(待審核, 已通過, 已駁回) DEFAULT 待審核, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (student_id) REFERENCES student(student_id), FOREIGN KEY (topic_id) REFERENCES topic(id) );為什么不用外鍵級聯(lián)畢業(yè)設(shè)計答辯時老師可能用 Navicat 手動刪數(shù)據(jù)測試邊界情況。ON DELETE CASCADE會導(dǎo)致刪除課題時連帶刪掉所有選題記錄掩蓋邏輯缺陷。顯式DELETE FROM selection WHERE topic_id ?才體現(xiàn)事務(wù)意識。5.2 登錄與角色路由用靜態(tài) Map 模擬用戶體系拒絕 Spring Security 復(fù)雜度// LoginDialog.java public class LoginDialog extends JDialog { private JTextField usernameField; private JPasswordField passwordField; private String role; // teacher, student, admin public LoginDialog(Frame owner) { super(owner, 用戶登錄, true); setLayout(new GridLayout(3, 2, 10, 10)); add(new JLabel(用戶名)); usernameField new JTextField(); add(usernameField); add(new JLabel(密碼)); passwordField new JPasswordField(); add(passwordField); JButton loginBtn new JButton(登錄); loginBtn.addActionListener(e - doLogin()); add(loginBtn); pack(); setLocationRelativeTo(owner); } private void doLogin() { String username usernameField.getText().trim(); String password new String(passwordField.getPassword()); // 簡化認證硬編碼模擬實際應(yīng)查數(shù)據(jù)庫 if (admin.equals(username) 123.equals(password)) { role admin; } else if (username.startsWith(stu_) 123.equals(password)) { role student; } else if (username.startsWith(tea_) 123.equals(password)) { role teacher; } else { JOptionPane.showMessageDialog(this, 用戶名或密碼錯誤); return; } dispose(); // 關(guān)閉登錄框 new MainFrame(role); // 傳入角色初始化對應(yīng) Tab } }5.3 主程序入口30 行啟動代碼把 Swing、JDBC、MySQL 串成一條線// Main.java public class Main { public static void main(String[] args) { // 設(shè)置 Swing 全局字體解決 Win10 下中文模糊 try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeel()); Font font new Font(Microsoft YaHei, Font.PLAIN, 12); UIManager.put(Label.font, font); UIManager.put(Button.font, font); UIManager.put(TextField.font, font); } catch (Exception e) { e.printStackTrace(); } // 啟動登錄對話框 SwingUtilities.invokeLater(() - { LoginDialog dialog new LoginDialog(null); dialog.setVisible(true); }); // 驗證數(shù)據(jù)庫連接啟動時執(zhí)行一次 try (Connection conn DatabaseConnection.getConnection()) { System.out.println(? 數(shù)據(jù)庫連接成功 conn.getMetaData().getURL()); } catch (SQLException e) { JOptionPane.showMessageDialog(null, 數(shù)據(jù)庫連接失敗請檢查 MySQL 是否啟動、賬號密碼是否正確\n e.getMessage(), 連接錯誤, JOptionPane.ERROR_MESSAGE); System.exit(1); } } }關(guān)鍵技巧SwingUtilities.invokeLater()是 Swing 程序的黃金入口確保所有 GUI 創(chuàng)建都在 EDT 中UIManager.setLookAndFeel()用系統(tǒng)原生風(fēng)格避免 Metal 風(fēng)格在 Win10 上顯示異常啟動時主動getConnection()并捕獲異常比運行時彈窗更早暴露環(huán)境問題。6. 答辯加分項3 個讓老師眼前一亮的實戰(zhàn)細節(jié)不是炫技而是真懂答辯不是代碼朗誦會老師想看到的是你對技術(shù)選型的理解深度、對邊界條件的預(yù)判能力、對真實問題的解決痕跡。以下三個細節(jié)每個都能在 5 分鐘內(nèi)講清楚原理、展示代碼、復(fù)現(xiàn)效果且全部來自真實畢設(shè)翻車現(xiàn)場——它們不增加功能但能讓老師篤定“這學(xué)生真的跑通了不是抄的”。6.1 細節(jié)一用JTable的TableCellRenderer實現(xiàn)狀態(tài)色塊比文字更直觀“狀態(tài)”字段只顯示“待選”“已選”太單薄。用TableCellRenderer為不同狀態(tài)渲染不同背景色既提升可用性又證明你理解了 Swing 的渲染機制。// StatusCellRenderer.java public class StatusCellRenderer extends DefaultTableCellRenderer { Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component c super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); String status (String) value; switch (status) { case 待選: c.setBackground(Color.LIGHT_GRAY); break; case 已選: c.setBackground(new Color(173, 216, 230)); // 淺藍 break; case 已審核: c.setBackground(new Color(144, 238, 144)); // 淺綠 break; default: c.setBackground(Color.WHITE); } return c; } } // 在創(chuàng)建 JTable 后設(shè)置 table.getColumnModel().getColumn(4).setCellRenderer(new StatusCellRenderer());為什么值得講這不是 CSS而是 Java 代碼對每個單元格的逐個繪制控制。老師會意識到你不僅會用JTable還知道它背后是TableCellRenderer接口且能定制實現(xiàn)——這比“用過 Spring Boot”更有說服力。6.2 細節(jié)二用JOptionPane的showConfirmDialog實現(xiàn)二次確認防誤操作“撤回選題”按鈕一點就刪太危險。加一層showConfirmDialog返回JOptionPane.YES_OPTION才執(zhí)行 JDBC 刪除這是最樸素的用戶保護意識。JButton withdrawBtn new JButton(撤回); withdrawBtn.addActionListener(e - { int result JOptionPane.showConfirmDialog( this, 確定要撤回該課題嗎此操作不可撤銷, 確認撤回, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE ); if (result JOptionPane.YES_OPTION) { // 執(zhí)行 JDBC 刪除 selection 記錄 try { SelectionDao.deleteByStudentAndTopic( currentStudentId, selectedTopicId ); JOptionPane.showMessageDialog(this, 撤回成功); refreshTable(); // 重新加載 } catch (SQLException ex) { JOptionPane.showMessageDialog(this, 撤回失敗 ex.getMessage()); } } });答辯話術(shù)“老師這里我加了二次確認因為選題是關(guān)鍵業(yè)務(wù)操作。如果直接刪學(xué)生手滑點錯就無法恢復(fù)。用JOptionPane是最輕量的方案不需要引入額外框架也符合桌面應(yīng)用的交互習(xí)慣?!?.3 細節(jié)三導(dǎo)出選題統(tǒng)計為 Excel用 Apache POI 而不是截圖答辯時老師常問“能導(dǎo)出數(shù)據(jù)嗎”截圖是下策用 Apache POI 生成.xlsx文件才是正解。只需 20 行代碼就能把JTable數(shù)據(jù)轉(zhuǎn)成 Excel且兼容 Office 和 WPS。// 導(dǎo)出按鈕事件 JButton exportBtn new JButton(導(dǎo)出統(tǒng)計); exportBtn.addActionListener(e - { try (XSSFWorkbook workbook new XSSFWorkbook(); FileOutputStream fileOut new FileOutputStream(選題統(tǒng)計.xlsx)) { XSSFSheet sheet workbook.createSheet(選題匯總); String[] headers {課題ID, 課題名稱, 指導(dǎo)教師, 專業(yè)方向, 選擇人數(shù)}; Row headerRow sheet.createRow(0); for (int i 0; i headers.length; i) { headerRow.createCell(i).setCellValue(headers[i]); } // 假設(shè)已有統(tǒng)計結(jié)果 ListStatItem ListStatItem stats ReportService.getTopicStats(); for (int i 0; i stats.size(); i) { Row row sheet.createRow(i 1); row.createCell(0).setCellValue(stats.get(i).getId()); row.createCell(1).setCellValue(stats.get(i).getTitle()); row.createCell(2).setCellValue(stats.get(i).getTeacher()); row.createCell(3).setCellValue(stats.get(i).getMajor()); row.createCell(4).setCellValue(stats.get(i).getCount()); } workbook.write(fileOut); JOptionPane.showMessageDialog(this, 導(dǎo)出完成選題統(tǒng)計.xlsx); } catch (IOException | SQLException ex) { JOptionPane.showMessageDialog(this, 導(dǎo)出失敗 ex.getMessage()); } });依賴添加pom.xmldependency groupIdorg.apache.poi/groupId artifactIdpoi-ooxml/artifactId version5.2.4/version /dependency我?guī)М呍O(shè)十年見過太多學(xué)生花兩周調(diào)通 Spring Boot Vue 前后端分離結(jié)果答辯時 Tomcat 突然報port 8080 already in use當(dāng)場崩潰。而用 Swing JDBC MySQL 的學(xué)生往往在答辯前夜還在優(yōu)化GridBagLayout的insets參數(shù)第二天演示時雙擊 jar 包界面秒開SQL 日志清清楚楚老師問哪句 SQL 怎么寫的他打開TopicDao.java指著prepareStatement就能講。技術(shù)沒有高低只有是否服務(wù)于目標(biāo)——畢業(yè)設(shè)計的目標(biāo)從來不是造輪子而是證明你有能力把需求、代碼、數(shù)據(jù)、界面嚴絲合縫地擰成一股繩。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
成人综合视频久久| 综合色图,成人综合网| 大香蕉国产中文自拍| 玖玖爱综合| 无码人妻一区二区三区免费九色| 九九av| 97综合激情| 国产成人精品日本视频| 东北老熟女| 尤物一级在线免费观看| 亚洲在钱| 日本久久精品| 69一区二区| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 成在线人在线观看视频| 亚洲免费97免费| 青娱乐999| 国产不卡片| 亚洲情色综合| 91爱看| 人妻一二三区| 九九九九97| 丁香五月激情综合国产| 中英熟女操女| 国内操逼视频二区| 国产情侣自拍在线播放| 九月伊人中文字幕| 99九九久久| 美国人人操人人操| 99久久久无码国产精品性啊聊| 国产黄a三级三级三级av在线看 | 18精品一二区| 五月婷婷hd| 男女日B国产| 18岁禁 茉莉成人久久| 不卡中文字幕aⅴ在线| 久偷拍| hd成人一区二区在线| 美女十八禁| a网站免费观看| 九色在线熟女国产黑人| 91国产丝袜美女| 日本国产高清色www视频在线| 日韩精品电影| 亚洲人成网www| 97 色综合| 麻豆天美制片厂网站视频| 大屁股人妻女教师撅着屁股| 天美麻豆精品视频99| a'v在线资源| 亚洲欧美国产中文字幕| 亚洲综合色网| 日本色色视频网站| 一区二区亚州激情久婷婷欧美| 日本免费专区| 97综合国产| 蜜桃精品一区二区三区ww | 久久中文字幕女同性恋一区| 亚洲欧洲另类| 2018天天干在线视频| 99操| 91操碰| 人人操人人操人人人操| 青草伊人网| 国产黄a三级三级三级av在线看 | 福利社区午夜一区二区| 五月综合色| 国产乱伦视频污| 亚洲男人的天堂网| 久久久久久中文字幕中文字幕最新| 日韩综合成人免费视频| 亚州男人天堂| 91白嫩| 91最新综合| 一区二区三区成人高清视频| 中文字幕在线免费观看 | 69少妇一区二区| 国产午夜福利合集| AV一二区| 婷婷中文字幕| 亚洲无码久久久久久久| 九九亚洲| 加勒比av网| 欧美不卡在线美女| 牛牛aV| 立川理惠被中出无码| 丰满丝袜少妇AV| 狠狠中文字幕| 日本肉体xxxx裸交| 91在线视频观看国产| 欧美精品黑人猛交高潮| 色天天野狼综合社区| 久久久久久久少妇| 一区二区影视| 色哟哟av网址| 午夜福利区| 久久国产精品91| 不卡啪啪视频| 51一区二区三区| 懂色Av| 一区二区三区一亚洲中文字幕、综合区灬| 欧美日本视频一区| 麻豆天美AV传媒第一页| 国产精品视频播放| 96爱综合| 国产偷仑| 欧美性后入| 欧美三级一级| 97操97色| 绯色AV粉色AV蜜臀AV| 亚洲五月丁香花狠狠干一区二区三区 | 老熟乱一区二区三区四区| 日韩精品操少妇| 99re8超碰| 亚洲丝袜色图| 欧美性,色九九| 蜜色网色哟哟| 和协无码影院| 久久亚洲色图中文字幕| 91日日夜夜| 超碰久久精品| 中文字幕色AV| 日日骚av| 日韩精品人妻一区二区| 亚洲无码超碰免费| 日日日日做夜夜夜夜无码| 香港日本韩国人妇99www.wccm20| 国产日韩精品一区二区三区| 超碰偷拍| 日韩啪啪视频| 丝袜人妻av一区二区| 岛国免费视频在线| 国产精品女生av| 韩国黄片aaaa| 91狼人| 日本人妻A片成人免费看片| 大地资源在线观看中文第二页| 女人高潮抽搐喷水视频网站| 天天综合网一91网| 亚洲97P| 亚洲射综合网| 9 1超碰九色| 亚洲丝袜综合| 亚洲日本激情| www.99中文字幕| 国产一区二区成人av在线播放| 国产精品午夜福利亚洲综合网| 青娱乐老司机视频| 国产亚洲精品美女久久久久久2021| 日韩无码视频黄色| 亚洲另类电影| 欧美色图亚洲特色| 欧美草草高清日韩视频| 中国人高清www色视频免费| 久久欲| 亚洲欧美日韩精品久| 91人妻Pr| 亚洲欧美日产国产91毛片| 欧亚日韩综合精品国产| 84YTCOM性无码| 国产亚洲精品激情| 色99视频| 欧美在线55555| 欧亚日韩综合精品国产| 蜜臀久久99精品久久久电影| 五月天玖玖资源站| 嗯嗯啊啊亚欧精品| 九九九九免费| 亚洲一区二区三区播放在线| 91碰碰| 超碰碰激情97+久| 久久久久久十| 婷婷五月天激情网| 黄色二级片网站| 亚洲丝袜99| 亚洲国产97| 黄色在线网站| 精品久久99| 超碰9 7女人| 久久老女人| 国产AV高清AV无码| 伦理弟一页| 国产精品乱码久久| 男男H黄动漫啪啪无遮挡网站| 日本久操视频| 亚洲黄色AV电影| 国产h片在线观看视频| 国产丝袜美女诱惑| 婷婷激情丁香| 午夜理论片在线观看免费| 蜜色网色哟哟| 日韩有码中文字幕女同性恋| 亚洲 欧美 手机在线观看| 91 国产丝袜在线放观看| 正宗无毛一线天嫩逼| 久久久精品中文字幕爱豆| 亚洲美乱| 欧美日韩久久精品爱爱| 免费a在线播放v| 国产人伦精品一区二区三区| 亚州男人天堂| A V少妇特黄三级| 中文字幕欧洲有码| 國產尤物AV尤物在線觀看| 日欧美色| 成年无码动漫av片无尽在线| 屌逼麻豆| 丰满人妻一区二区三区色-百度| www.色婷婷色综合| 欧美91网| 俺去也婷婷| 久久三区四区| 男人的天堂不卡一区二区| 亚洲se电影| 亚洲 一区二区 自拍| 精品性爱久久视频| 色色色欧美| 九九国产热| 熟女乱伦A| 青久操| 久久欲| 伊人991| 18禁止看精品中文字幕| 中文一区在线日| 91精品久久久| 欧美日韩一二三| 人妻久久久久久| 日韩精品午夜操呦呦不卡影院| 免費黃色視頻觀看一| 91热色| 韩国一级婬片A片AAAAA| 国产精品久久久久久久久久久久久久| 激情99| 欧美色图20p| 日本三级人妻a人妻一在线| 中文乱码字幕观看| 精品人妻夜夜草| 免费av在线播放二区| 日本最新免费韩国1区2区视频播放| 隔壁邻居波多野结衣中文字幕| 超碰97在线色男人??| 亚洲av无线观看| 中文字幕免费在线观看| 亚洲不卡AV在线| 欧美性生活男人的天堂| 日本精品一区二区三| 婷婷精品视频| 97香蕉网| 东京太热男人的天堂久久久| 岛国小电影| 亚洲国产ⅴ高清在线观看| 国产后入清纯| 精品久久久久9999| 人人妻人射| 熟女少妇视频| 天天摸天天舔天天操| 精品国产肉丝袜在线拍国语| 资源新线在线天堂| 久久久男人的天堂| 婷婷日韩一区二区三区中文字幕在线| 久久精品一区二区一8| 日本黄色天堂| 2017大香蕉国产精品久久| 亚洲AV无码成人精品久久| 99久久亚洲精品无码毛片潘甜甜| 美熟女逼导航AV操逼| 大香蕉亚洲中文| 成人小说视频在线精品欧美| 91在线视频国产网站| 九九九九精品一区| 嗯~啊~快点 死我视频| 手机在线看片免费人成视频| 以及麻豆国产入口在线观看免费| 成人日本片久久久蜜桃| 97精品久久久久久久| 麻豆这里只有精品| 操逼免费视频无码国产| 乱操乱伦AV| 99少妇内射| 啊啊啊好舒服视频在线观看| 夜夜高潮夜夜爽高清视频一| 国产精品大香蕉| 欧美偷拍区| 久久78| 久久久月天| 中文幕97| 亚熟hd视频在线| 色五月av| 免费AV播放| 欧美日韩在线国产在线| 久久久久久久伊人精品| 色在线视频导航| 日韩本不卡视频在线观看| 亚洲男人的天堂网| 精品97久久综合| 日韩97视频!在线| 95人妻爽爽人人做人人澡| 久久无码电影| 欧美性爱1080p| 国产一级内射无挡观看| 波多野结衣一级视频| 国产精品com| 老妇女91| 69XX一中文字幕人妻91| 免费视频在线一区二区不卡| 婷婷色综合欧美日韩| 久久精品一区二区| 曰韩人妻中文字幕在线| 免费自拍三级综合| 99国产在线 精品 视频| 亚洲精品性爱片| 国产成人自拍视频视频| 国产精品久久久久久久AV大片| 啊嗯好大视频在线观看| 91 国产丝袜在线放观看| 伊人影院中文字幕| 日本天堂网| 精品久久99| 影音综合网| 亚州综合电影| 天堂涩涩| 中文字幕免费在线观看| 超碰 欧美| 国产精品乱码久久| 蜜臀一区二区三区在线| 伊人黄色片| 国产精品免费视频人成| 丁香五月激情五月| 91老司机在线视频免费观看 | 玖玖久久久| 97ai亚洲| 成人五月天丁香激情综合| 欧美亚洲中文| 在线色导航| 中文字幕亚洲永久精品| 国产精品亚洲一区二区三区四区| 超碰久热| 久久久久七视频| 亚洲色图伊人网| #NAME?| 97在线观看免费视频| a男人的天堂久久一级A毛片| 老熟女乱子伦中文字幕一区二区| 亚洲AV永久无码一区仙野| 长长久久88视频| 亚州操操穴网| 四虎免费视频| 91狠狠| 久久人人爽爽人人爽人人片αV| 粉嫩粉嫩一区性色AV片| 五月黑AⅤ| 99久久综合| 啊啊啊在线看| 日韩综合无码一区久久92| 久久无码成人| 久久久一区二区三区四曲免费听| 国产日逼视频| 天天干天天做| 夜夜骑操视频| 亚洲精品久久久久毛片A片拉屎 | 成人欧美日超碰| 国产精品夜夜| 美国一区二区三区视频| 啊啊啊啊嗯嗯嗯用力好爽 | 777琪琪午夜免费A片| 99热久| 精品然女一区二区| 久久久亚洲| 强奸乱伦av电影| 91在线限制级| 亚洲中文字幕熟女少妇一区二区| 中文字幕精品日韩中文字幕| 久久久噜噜噜久久久| 欧美亚洲韩国视频十五区| 精品无码久久久久久久杏吧| 激情婷婷五月天| 999九九精品| 日韩成人性日韩成人性爱视频在线免费观看 | 成人AV素股で擦久久| AV男人天堂网| 精品人妻av在线播放| 亚洲色堂免费视频| 老熟女综合| 色噜噜人妻丝袜a∨先锋影| 日韩av熟女一区二区三区成人| 人人操超碰在线| 免费一级性爱久久| 日韩一级性爱无码| 暖暖精品二区三区观看| 综合网 欧美| 色综合久| 国产路线专区| 青青草国产盗摄一二三区| 婷婷色综合| jazzjazz国产精品麻豆| 欧美综合色站| 亚州色图欧美| 91国产丝袜白虎| 色婷婷国产精品一区在线观看| JIZZJIZZ亚洲女人被躁| 色乱二区| 色婷婷aV一区二区三区麻豆综合| 欧美日韩亚洲天堂网| 小草精彩毛片| 欧美日韩国产色五月综合在线| 亚洲色交| 蜜乳成人AV| 岛国片在线观看视频亚洲| 麻豆精品久久久久久久| 大香蕉92| 91人妻人人澡人人爽人人精品| 大黄片做爱的大的| 999日韩中文精品观看视频。| 在线视频五十市| 亚洲猛交| 亚洲好看强奸乱伦| 免费看美国人人爽,人人操| a片亚洲一本通视频| 久久99国产精品| 91丨豆花丨熟女| 国产67194| 91爰爱欧美| 大香蕉中文在线| 99久久e免费热视| 国产成年女黄特黄| 激情五月婷婷| 精久久久| 免费日韩黄片| 丰满人妻-区二区三区免费| 蜜臀无码一区二区| 99在线免费公开视频| 97天天爽| 91成人亚洲色图| 国产精品久久久无码aV去| 久99热| 欧美人妻色| 欧美色人| www.狠狠干.coom| 欧美激情一| 91午夜无码| 性站| 秋霞色色影院| 97色五月天完| 人妻少妇精品久久久久久久| 久久免费精彩视频| 久久久久女教师免费一区| 萌白酱自拍视频| 性色国产东北露脸精品视频| 91无遮挡| 九色97| 亚洲深夜福利| 人人摸人人叼| 中文欧丝袜诱惑| 欧美日韩啪啪电影| 熟妇熟女一区二三区| 操东北女人| 99啪啪| 国产美女高潮视频| 色婷婷导航| wuyechaopeng| 另类一区| 亚洲久草AV色图| 欧美色综合影院| 五月婷婷激情| 青青久久艹| 色色色综合网| 黑人综合网| 亚洲色图久久成人| 久久色网| 91丝袜美女| 日韩av性爱在线播放| 国产suv精品一区二区四| 91黑丝在线| 天天做天天爱天天高潮| 亚洲丝袜少妇在线| 男人的天堂啪啪| 丰满少妇一区二区三区免费看| 25国产精品免费观看| 亚洲少妇视频| 亚洲一区二区三区久久 亚洲一区二区| 欧美东京热青青草| 天天欧美欧美亚洲网| 欧美激情综合网| 97超碰碰碰| 操逼天美3区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美成人都市人妻| 久久九色| 欧美色图成人网一区二区| 欧美aa一级片| 日日日日做夜夜夜夜做无码97| 精品制服美女中文一区二区三区| 国产欧美日韩一区二区三区| 伊人在线大香蕉视频久久| 亚洲色欲天天人妻无码系列专区| 天堂综合网| 91国产丝袜足交精品视频| 国产日韩精品suv| 懂色av中文字幕一区二区三区天美| 26uuu国产免费观看| 国产成人精品网站| 曰本精品久久久| 日韩国产乱子伦App| 校园春色 亚洲| 性感女人网页在线观看视频| 91丨豆花丨熟女| 97在线免费公开视频| 亚洲色图超碰在线| 伦伦成年午夜免费视频| 一区二区三区看视频| 一个人在线看的黄色电影网站| 久久美女国产| 久久春色| 麻豆人妻偷人精品无码视频| 91oumei| 黄色在线网站| 国产毛片毛片4p懂色| 国产视频小说| 亚洲宅男天堂| 免费伦费视频在线观看| 99re这里只有精品9| 美日韩一二三区| 盗摄 精品 另类 一区| 国产东北女人在线视频| 快灬快灬 一下爽蜜桃在线观看| 97超碰热线| 99九九精品| 岛国在线免费视频| 日韩人妻无码不卡网站| 中文字日本乱码| 人妻天堂综合网| 国产大学生口爆吞精合集| 少妇久久久久久| 色踪合AV| 久久久久久久久久久999| 色五月婷婷久久| 911av网站免费观看| 色香AV| 亚洲综合草草| 国产乱人妻精品入口| 亚洲,欧美,春色,另类| 亚洲一卡2卡3卡4卡乱码网站| 国产深夜福利| 四虎884| 欧美成人一区二区| 嗯阿好爽好紧| 激情自拍 校园春色| 最新啪啪视频| 18禁精品网站在线看| 亚洲色图欧美一区二区不卡| 国产精选视频| 干美女人妻| 校园春色宗合网| 亚洲日韩青青草色月| 久久极品伊人| 六月丁香啪啪| 色噜噜综合在线| 91精品久久久久久77777| 中文字幕日韩人妻视频一区二区三区 | 午夜一区| 亚洲少妇中文字幕网址| 亚洲天堂人妻熟妇视频| 99婷婷一区二区| 国产亚洲色婷婷久久99精品91 - 百度| 9 1果冻精品视频| 欧美亚洲清纯| 十八禁电影伊人网| 久久久久久久久国产| 亚洲欧美日产国产91毛片| 九九成人精品| 黑人中出21连凳花野真衣| 91亚洲不卡一区| 殴美,日韩国产伦精品| 久久久无码国精品无码三区三区| 日本综合久久| 怡红院一区二区熟女人妻| 无码伊人久久大杳蕉中文无码| 欧亚性爱啪啪| 国产精品一区二区 尿失禁| 国产福利小视频高清在线观看| 欧美综合娱乐久久| 无码最新| 蜜乳AV网址| 丰满人妻一区二区三区大胸懂色| 无码聚合| av国产无码| 五月天综合网| 色色婷婷五月| 国产高清不卡视频| 亚洲日韩久久精品一区| 亚洲日韩乱码中文无码蜜桃臀网站| 久久亚洲色图中文字幕| 久久中文字幕女同性恋一区| 亚洲成人AB| 欲香欲色综合天天伊人| 亚洲国产精品无码AV久久| 日韩精品中文字幕人妻| 国产人妖的免费的视频| 亚洲日韩美国人妻| 五月丁香色综合| 毛片中心9视频99| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 综合久久久久久久综合网| 欧美另类综合久久| 鸡巴插逼视频| 日韩无码嘿咻黑热久| 欧美无圣光在线| 91操人| 美女好片色日本| 丰满人妻一区二区三区| 亚洲无码成人精品| 图片区小说区| 啊啊啊啊啊啊啊国| 天天看高清麻豆| 大香蕉2017| 欧美一级在线观看成人| 久久毛卡| 97人妻碰碰中文无码久热丝袜| 嗯~啊~快点 死我视频| 婷婷15月天青娱乐| 东京热综合久久一区二区| 国产精品一区二区密臀| 国产超碰AV在线精品| 国产亚洲精品美女久久久久久2021| 五月丁香网站| 亚洲男人天堂2016| www欧美91| 在线亚洲 欧美 日本专区| 艹比视频国产精品| 毛片17S| 亚洲高清在线se| 日夜伊人网| 欧美黄色大片在线观看| 婷婷五月在线视频| 九9热伊人| 国产伊人精品在线| 国产 热久久久久国产精品| 99精品无码| 亚洲综合九| 九九九色| 1769精品一区二区三区| 欧美少妇第一页| 一二三四区电影| 国产精品蜜臀久久久久无码AV| 亚洲操逼网| 日夜干射色啊| 日本操逼无码| 國產尤物AV尤物在線觀看| 啊啊啊97视频| 男人午夜天堂| 五月丁香激情综合网| 91性高| 26uuu久久| 五月综合色| 欧美偷偷网| 午夜视频好爽啊| 五月丁香六月婷综合成人综合 | 久久久久久久久久久久久久久性生活视频| 久热大香蕉网站| 一级成人性爱| 日韩精品一二三四| 欧姜老司机| 亚洲 欧美日韩 另类| 婷婷色网| 99婷婷一区二区| 超91综合网| 91亚洲黄色网| 亚洲超碰AV| 久热久操| 中文字幕日韩电影人妻| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 无码人妻精品一区二区中文| 美女啊啊啊啊pc| 青青草原香蕉日本Ap| 国产免费一区在线观看| 久久久久人| 成年人黄色小视频网站| 丰满搜索结果 -第18页- 久久高清无码| 欧美性性性| 欧美日韩999| 国产精品白丝AV| av日韩在线观看电影| 天堂射| 日本成人A片免费看| 欧美精品 - 91爱爱| 日韩激情电影中文字幕| 五月丁香婷婷综合| 东北女人无套内谢视频| 国产熟女少妇一区| 亚洲男人天堂av| 婷婷四五区| 人妻欧美| 熟女丝袜视频| 熟妇乱伦一区二区| 国产有码一区| 思思热在线视频免费| 97大色网| 成全动漫视频观看免费下载| 影音先锋一区二区在线资源| 亚洲色图欧美色图日韩色图| 亚洲 另类 丝袜 自拍 动漫| 亚洲va有码在线天堂| 激情小说亚洲视频| 成人午夜视频免费播放| 日韩99999| 蜜桃久久综合视频| 日本成人免费一区二区三区| 日本最新免费韩国1区2区视频播放| 中文字幕日韩人妻视频| 夜夜免费视频| 丁香五月天啪啪| 91少妇| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 少妇滛荡视频| 清纯唯美亚洲| 国产成人AV麻豆| 搡老女人老妇女AAA一VU麻豆| 99re在线视频| 97人人超| 欧美欧美啪啪视频| 精爱久久| 欧亚免费视频| 亚洲男人电影天堂| 国产盗摄美女如厕大神作品在线观看| 国产日逼视频| 深爱伊人影院| 久操B网| 欧美日韩亚洲一区二区在线观看| 无卡一区=区| 亚洲黑丝在线| 天天日天天搞天天干| 久久是精品| 日韩精品99999| 天天躁日日躁AAAAXXXX国产| 成人 日韩欧美一区| 日韩免费在线观看不卡| 色悠久久久av| 色综合98| 国产中出内射一区二区| 丝袜美腿91| 色婷婷在线视频精品导航| 强奸乱伦av电影| 97免费在线观看| 美性中文综合网| 日韩AV片| 熟女精品va中文字幕| 亚洲综合91| 精品人妻伦一区二区三区久久| 夜夜肏2021| 久久久久久亚洲中文| 天天天肏屄肏屄肏屄欧美欧美| 国产传媒美日韩av| 91日本在线观看| 国产av波波国产精品| 日日摸日日碰夜夜爽视频| 十八禁黄色成人网站观看| 欧美刺激色黄片免费看| 久久久国产av美女私房| 大茄子熟女AV导航| 校园春色中文字幕AV| 欧美日韩丝袜 | 九久9热| 精品国产片亚洲一区| 亚洲婷婷综合网| 偷偷人人精品女女久久| 最新av在线| 老色69| 九九热AV| 人人人人插| 三级精品三级在线观看| 欧美姓爱综合网| 蜜桃视频啊啊啊啊| 久久天天躁日日躁狠狠躁 | 欧美少妇第一页| 婷婷五月天激情小说| 日本性爱网址| ji熟女.com| 人妻精品视频一区二区三区| 乱人乱色一区二区三区免费| 青青三级视频| 午夜啊啊啊| 午夜天天碰综合视频| 欧美精品久久久久久久久88| 亚洲精品无码久久AV| 伊人网青青| www国产无码| 97色综合中文网| 亚洲一区中文字幕| 日韩色图 一区二区| 久久久久久久久久黄色网| 91逼逼女人91| 国产人妻精品久久久一区二区三区 | 99热国产| 综合色99| 久久色情| 综合网色| 成片免费播放| 中文字幕免费看大片| 一区二区影院| 成人乱码一区二区三少妇| 强奸乱伦大香蕉| 精品成人无码| 国产av强奸美女| 久久受www免费人成| 一本色道综合久久欧美| 九九碰九九爱97超| 国语对白露脸XXXXXX| 国产乱伦搜索结果91P| 一起草三级AV电影在线观看 | 啊啊啊啊免费视频| 精品对白久久不卡| 97超碰超| 一区二区影视| 亚洲欧美首页| 女性喷水高潮在线观看| 人人人干干人人干| 岛国A V在线免费看| 欧美日韩午夜精品一区二区三区 | 日韩精品人妻中文字幕久久久| 亚洲中文人妻色| 日本加靬比网站发布页| 狠狠操一区二区| 激情综合av| 亚洲综合 欧美| 一二区在线观看视频| 99热一区二区三区四区| 中文字幕后石码四区五区| 性久久久| 激情综合二| 国产女人成人精品视频| 中文字幕成人| 亚洲青青青视频在线| 欧美日韩理论一区| 1二区9| 久久久内射良家| 老熟女阿 国产91| 日本免费二区三区| 精品性爱| 日韩一区二区高清在线观看的| 国产精品免费美女视频| 狠狠色婷婷7777久| 啊啊啊啊视频免费| 伊人国产视频| 狠狠爱夜夜干| 亚洲人久久久久日| 99婷婷一区二区| 欧美一区二区三区蜜桃| 亚洲国产日韩欧美熟妇在线| 欧日韩不卡视.频| 久久黄黄| 蜜臀久久99'精品久久久| 男人天堂新| 夜夜操美女| 婷婷深爱五月| 伊人青青一区成人视频在线观看区| 天天看特黄的免费网站 | 夜夜嗨一区二区| 青青草在线成人视频| 亚洲加勒比色图| 麻豆精品一区二区三区四区免费观看| 久久国产逼| 国产精品99久久久www| 爱爱60秒免费视频| 大香蕉之青青草原| 丝袜 中出 制服 人妻 美腿 中文字幕| A级国产欧美激情在线| 亚洲砖码砖专无区2023| 五月婷视频| 亚洲天堂资源| 欧洲在线性爱视频| 中文字幕精品资源在线| 九九久久久九九| 色悠久久久av| 欧美人与动性人交a| 亚洲欧洲国产综合av| 久久综合久久综合人久久夜精品| 91天美传媒在线观看| julia国产在线 | 青青草密桃在线播放| 欧美高潮| 国产精品福利资源在线尤物| 欧美成人AⅤ大片在线观看| 夜夜高潮夜夜爽高清视频一| 日韩成人人妻网站| 国产又猛又粗又爽又黄| 九九热AV| 鸥美极品| 婷婷av在线中文字幕| 99久久99久久综合| 日本999精品| 日本欧美中文字幕| 五月天婷婷综合| 99热日| 91精品亚洲内射孕妇| 亚欧精品久久久久久久久久久| 亚洲日本天堂| 中文字幕精品一区二| 六九九九| 青青草一区二区高清无码视频 | 青草青青久久久久久国产| 精品久操| 色久桃花影院在线观看| 四虎视频在线观看| 婷婷色综合欧美日韩| 久/久精品99看9| AV男人天堂网| 熟女乱伦A| 亚洲淫乱骚妇AV| 欧美人体性爱互联网第一页婷婷日本| 婷婷尹人大香蕉免费| 2020中文字幕在线| 国产高清成人mv在线观看| 久久超碰免费的| 2021国产成人精品久久| 一区二区三区在线资源| 美女91网址| WWW黄片COM| 夜夜春夜夜操| 午夜国产成人福利视频| 射丝袜大香蕉| 日韩人妻一二三区视频| 好吊色一区| 日本伦乱九九九综合| 爆乳免费黄网站| 久久久久久九九九| 色呦呦、国产精品| 999久久久| 亚洲精品色| 天天干天天操天天操夜夜操天天操| 色哟哟的毛片| 校园春色五月天| 91 刺激在线| 日韩97在线| 黄污污污污| 亚洲不雅视频1区二区| 中文字幕 国产区| 少妇丝袜在线观看AV| 岛国片国产成人亚洲播放| 免费超碰97久久| 中国一区二区亚洲人妻| 国产天美传媒精品| 欧美aaaaaaa| 欧美BT 亚洲色图| 色噜噜狠狠色综合日日| 一二三区精品视频| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产精品久久久三级无码| 91欧洲入口| 国产AV无码AV| 91欧美网| 久久久久久久少妇| 成人无遮挡毛片免费看| 黑人与人妻| 国产精品久久久久久 百度| 日韩BBN| 91精品国产高清久久久久久,亚洲成人 | 久久精品国产亚洲AV嘿嘿| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 1024精品在线| 九九热免费国产视频婷婷伊人| 超碰在线人人射| 欧洲精品一区二区三区| 亚洲成人性爱网站在线播放| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 啊啊啊啊一区| 黄片免费日韩| A男人的天堂| 国产超碰| 色噜噜国产精品视频一区二区| 91亚洲黑人| 密乳AV免费观看| 精品少妇一区二区三区| 激情文学网伊人| 国产三级在线现体验区| 精彩久久中文| 亚洲不卡AV在线| 国产强奸无码乱伦| 超碰视97中文| 欧美图片偷拍| 女同女同恋久久级三级| 亚洲性综合11| 中文字幕在线观看AV| 粉嫩粉嫩一区性色AV片| 少妇天堂| 欧美日本久久精品一区| 日韩女模中文造逼| 一级做受视频免费是看美女| 操淫穴亚洲五月丁香 | 日本道久久综合色色| 97久久精品| 91网站视频在线观看| 亚洲高清在线| 俄罗斯一区二区视频在线观看| 天天操人人操骚逼网站| 好湿好紧好爽 视频| 岛国片在线播放| 日韩欧视频| 色五月69夫妻| 精品人人插人人操| 免费精品国偷自产在线在线| 四虎精品一区| 大香交伊人网| 久草视频在线视频在线视频在线观看| 欧美日韩制服| 97欧美色资源| 97色五月天完| 久久精品国产免费观看99| 内射夫妻三片| 人妻丝袜二区| 欧美 综合 亚洲| 91天美传媒精品| 无码又爽又硬又激情免费视频| 一级成人性爱| 嗯嗯啊好爽| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久jiu久神马影院| 美女黄频a美女大全免费皮| 成人小说另类在线| 一区二区三区看视频| 超碰午夜| 91蜜臀熟女| 五月天色综合| 草莓精品视频| 亚洲AV秘无码一区..| 午夜毛片亚洲精品片国产久久久| 91久久久久久久| 人妻出轨一区二区三区| 国产少妇肉丝在线观看| 日本操色导航| a一区二区三区乱码在线| 久久免费少妇| 日本幼女18+| 亚洲 欧美 综合 91| 日韩国产不卡在线视频| 亚洲色悠悠久久88| 国模限制级电影| 熟女色综合久久| 欧美gv在线观看| 亚洲老司机123专区| 国模吧 一区二区三区| 国语少妇精| 九九九九AV| 99re99在线视频| 欧中美三级一区二区三区| 欧美最大综合网| 941超碰| 久久99草| 亚洲天堂美臀在线| 欧美性爱一区二区三区四区 | 国产精品第一页国产大屁股视频免费区| 大香蕉日亚洲日本亚大| 热热色AV| 天天日骚逼熟女| 中文字幕一二三av| 久久精品国产97欧美精品亚洲| 97精品一区| 天美传媒精品久久视频| 麻豆AV一区二区天美传媒| 天天天干977| 熟妇视频一区二区三区在线| 中字一区| 日韩图色| 熟女91网| 操熟女91| 懂色Av| 家庭乱伦国产精品| 欧美亚洲一区二区久久久婷精品大包诱| 6080YYY午夜理论片在线观看| 免费啪啪av| 免费亚洲黄色视频在线观看| 日韩激情啪啪| 操逼啊啊啊91| 操人无码| 欧美性爱另类综合| 国产精品久久久亚洲一区| 色哟哟-国产专区| 人人噜夜夜操| 四季av一区二区凹凸精品小说| 亚州黄站| 东京热男人的天堂| 国内毛片热久久思思热| 手机在线视频国内精品| 亚洲AV无码国产精品久久久久| 狠狠干,狠狠操| 97久久久久久久精| 亚洲色91C| 91在线一起| 日韩福利电影网| 色吧5亚洲| 美女写真| 欧美日韩性爱视屏免费看了| 亚洲综合另类| 日韩午夜国产| 无码九九九九| 天天澡天天狠天天天做| 黄色片A级一区二区三区| 91小视频| 免费看毛片操穴| 91 亚洲情侣偷拍 久久| 熟妇女伦乱视频视频| 国产又黄又粗又猛大片| 综合久久久久久久综合网| 五月丁香激情综合网| 日本一区二区电影网站| 伊人精品国产| 欧美色网| 欧美日韩激情无码专区| 精品国产一区二区三区av在线资源| 国产传媒日本欧美专区| 天天操福利视频综合网站| 美女黄网| 中文字幕av乱伦| 亚洲第一男人天堂| 欧美78p| 久久久性爱视频| 夜夜欧美| 欧洲欧美视频一区二区| 天天爱天天操| 久久久久9999妇女| 亚洲精品97久久| 亚洲成人激情小说视频| 探花一区在线| 大香伊人在线一区| 欧亚 另类 久| 日韩免费大片一级播放| 婷婷五月天影院| 欧美最大综合网| 26uuu久久| 长长久久88视频| 亚洲资源网| WWW操逼| 在线性黄高清免费视频| 一区中文字幕二区日韩| 亚洲97精品| 美国aaaaa一级黄片| 欧美色997| 亚洲资源站| 综合色99| 无码人妻丰满熟妇奶水区毛片| 婷婷久草| 欧美呦呦性爱| 日本三级韩三级99久久| 97资源站久久| 国产精品播放| 色网在线视频观看免费| 亚洲天堂另类美腿| 97jingpin| 伊人黄色片| 青青欧美在线| 欧美人妻制服| 色丁香五月婷婷| 试看福利| 正在播放国产精品一区| 中文久久一区| 91亚洲高清| A久久| 91国产丝袜美女| 操逼视频色| 神马久久久久久久久久久久| 国产老女人久久毛|