欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java圖形界面編程實(shí)戰(zhàn)代碼

 更新時(shí)間:2019年07月08日 10:57:12   作者:江河湖泊  
這篇文章主要介紹了java圖形界面編程實(shí)戰(zhàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

關(guān)于Java圖形化界面設(shè)計(jì),基礎(chǔ)知識(shí)網(wǎng)上可搜,下面簡(jiǎn)單介紹一下重點(diǎn)概念,然后就由淺入深代碼實(shí)例。

程序是為了方便用戶使用的,Java引入圖形化界面編程。

1.JFrame 是容器類

2.AWT 是抽象窗口組件工具包,是 Java 最早的用于編寫圖形節(jié)目應(yīng)用程序的開發(fā)包。

3.Swing 是為了解決 AWT 存在的問題而新開發(fā)的包,它以 AWT 為基礎(chǔ)的。

代碼實(shí)例1:

package com.zhouzhou;
//練習(xí)網(wǎng)格布局
import java.awt.*;
import javax.swing.*;

public class Demo9 extends JFrame {
  // 定義組件
  int size = 9;
  JButton jbs[] = new JButton[size];

  public static void main(String[] args) {
    // 創(chuàng)建實(shí)例
    Demo9 de = new Demo9();
  }

  // 構(gòu)造函數(shù)
  public Demo9() {

    // 創(chuàng)建組件
    for (int i = 0; i < size; i++) {
      jbs[i] = new JButton(String.valueOf(i));
    }
    // 設(shè)置網(wǎng)格布局,這里只有前兩個(gè)參數(shù)(行/列)3和3 的話,網(wǎng)格沒有空隙
    this.setLayout(new GridLayout(3, 3, 10, 10));

    // 添加組件
    for (int i = 0; i < size; i++) {
      this.add(jbs[i]);
    }
    // 設(shè)置窗體屬性
    this.setTitle("網(wǎng)格布局案例");
    this.setSize(300, 400);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setLocation(200, 200);

    // 顯示
    this.setVisible(true);
  }
}

代碼實(shí)例2:

package com.zhouzhou;

import java.awt.*;
import javax.swing.*;

public class Demo10 extends JFrame {
  // 定義組件
  JPanel jp1, jp2;
  JButton jb1, jb2, jb3, jb4, jb5, jb6;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Demo10 de = new Demo10();
  }

  // 構(gòu)造函數(shù)
  public Demo10() {
    // 創(chuàng)建組件

    jp1 = new JPanel();
    jp2 = new JPanel();

    jb1 = new JButton("西瓜");
    jb2 = new JButton("蘋果");
    jb3 = new JButton("荔枝");
    jb4 = new JButton("葡萄");
    jb5 = new JButton("桔子");
    jb6 = new JButton("香蕉");

    // 設(shè)置布局管理器,
    //JPanel布局默認(rèn)是BorderLoyout// 添加JPanel
    //JPanel屬于容器類組件,可以加入別的組件
    jp1.add(jb1);
    jp1.add(jb2);
    
    jp2.add(jb3);
    jp2.add(jb4);
    jp2.add(jb5);

    // 把jpanel 加入JFrame
    this.add(jp1, BorderLayout.NORTH);
    this.add(jb6, BorderLayout.CENTER);
    this.add(jp2, BorderLayout.SOUTH);

    this.setSize(300, 400);
    this.setLocation(200, 200);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
  }
}

代碼實(shí)例3:

package com.zhouzhou;

import java.awt.*;

import javax.swing.*;

public class Demo11 extends JFrame {

  // 定義組件
  JPanel jp1, jp2, jp3;
  JLabel jlb1, jlb2;
  JButton jb1, jb2;
  JTextField jtf1;
  JPasswordField jpf1;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Demo11 d1 = new Demo11();

  }

  // 構(gòu)造函數(shù)
  public Demo11() {

    jp1 = new JPanel();
    jp2 = new JPanel();
    jp3 = new JPanel();

    jlb1 = new JLabel("用戶名");
    jlb2 = new JLabel("密  碼");

    jb1 = new JButton("登錄");
    jb2 = new JButton("取消");

    jtf1 = new JTextField(10);

    jpf1 = new JPasswordField(10);// 設(shè)置布局管理(上面忘記:extends JFrame,這里出錯(cuò)了)
    this.setLayout(new GridLayout(3, 1));

    // 加入各個(gè)組件
    jp1.add(jlb1);
    jp1.add(jtf1);

    jp2.add(jlb2);
    jp2.add(jpf1);

    jp3.add(jb1);
    jp3.add(jb2);

    // 加入到JFrame
    this.add(jp1);
    this.add(jp2);
    this.add(jp3);

    this.setSize(250, 150);
    this.setTitle("登錄");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
  }
}

代碼實(shí)例4:

package com.zhouzhou;

import java.awt.*;

import javax.swing.*;

public class Demo12 extends JFrame {

  // 定義組件
  JPanel jp1, jp2, jp3;
  JLabel jlb1, jlb2;
  JCheckBox jcb1, jcb2, jcb3;
  JRadioButton jrb1, jrb2;
  JButton jb1, jb2;
  // 單選設(shè)置
  ButtonGroup bg, bg2;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Demo12 d2 = new Demo12();

  }

  // 構(gòu)造函數(shù)
  public Demo12() {
    jp1 = new JPanel();
    jp2 = new JPanel();
    jp3 = new JPanel();

    jlb1 = new JLabel("你喜歡的運(yùn)動(dòng)");
    jlb2 = new JLabel("你的性別");

    jcb1 = new JCheckBox("足球");
    jcb2 = new JCheckBox("籃球");
    jcb3 = new JCheckBox("網(wǎng)球");
    // 下面可以設(shè)置單選
    // ButtonGroup bg2=new ButtonGroup();
    // bg2.add(jcb1);
    // bg2.add(jcb2);
    // bg2.add(jcb2);

    jrb1 = new JRadioButton("男");
    jrb2 = new JRadioButton("女");
    // 一定要把jrb1,jrb2放入到一個(gè)ButtonGroup里面
    ButtonGroup bg = new ButtonGroup();
    bg.add(jrb1);
    bg.add(jrb2);

    jb1 = new JButton("注冊(cè)用戶");
    jb2 = new JButton("取消用戶");

    this.setLayout(new GridLayout(3, 1));

    jp1.add(jlb1);
    jp1.add(jcb1);
    jp1.add(jcb2);
    jp1.add(jcb3);

    jp2.add(jlb2);
    jp2.add(jrb1);
    jp2.add(jrb2);

    jp3.add(jb1);
    jp3.add(jb2);

    // 加入到JFrame
    this.add(jp1);
    this.add(jp2);
    this.add(jp3);

    this.setSize(300, 200);
    this.setTitle("用戶注冊(cè)界面");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }
}

代碼實(shí)例5:

package com.zhouzhou;

import java.awt.*;

import javax.swing.*;

public class Demo13 extends JFrame {
  // 定義組件
  JPanel jp1, jp2;
  JLabel jlb1, jlb2;
  JComboBox jcb1;
  JList jl1;
  JScrollPane jsp;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Demo13 d3 = new Demo13();
  }

  public Demo13() {

    jp1 = new JPanel();
    jp2 = new JPanel();

    jlb1 = new JLabel("您的籍貫是");
    jlb2 = new JLabel("您喜歡旅游的地區(qū)");

    String[] jg = { "北京", "上海", "天津", "重慶", "江蘇" };
    jcb1 = new JComboBox(jg);

    String[] jg2 = { "故宮", "長(zhǎng)城", "九寨溝", "天安門", "火星" };
    jl1 = new JList(jg2);
    // 設(shè)置你希望顯示多少個(gè)選項(xiàng)
    jl1.setVisibleRowCount(1);
    jsp = new JScrollPane(jl1);

    // 布局管理
    this.setLayout(new GridLayout(3, 1));

    // 添加組件
    jp1.add(jlb1);
    jp1.add(jcb1);

    jp2.add(jlb2);
    jp2.add(jsp);

    this.add(jp1);
    this.add(jp2);

    this.setSize(300, 400);
    this.setTitle("下拉框練習(xí)");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }

}

代碼實(shí)例6:

package com.zhouzhou;

import java.awt.*;
import javax.swing.*;

public class Demo14 extends JFrame {

  // 定義組件
  JSplitPane jsp;
  JList jList;
  JLabel jl1;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Demo14 d4 = new Demo14();

  }

  public Demo14() {

    // 創(chuàng)建組件
    String[] words = { "boy", "gril", "bird", "box" };
    jList = new JList(words);

    // JLabel可以放置圖片
    jl1 = new JLabel(new ImageIcon("images/1.jpeg"));

    // 拆分窗格
    jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jList, jl1);
    // 可以手動(dòng)伸縮變化
    jsp.setOneTouchExpandable(true);

    // 設(shè)置布局管理器,它本身就是borderLayout布局,就不用再設(shè)置了

    // 添加組件
    this.add(jsp);

    this.setSize(400, 300);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }
}

代碼實(shí)例7:

package com.zhouzhou;

import java.awt.*;

import javax.swing.*;

public class Demo15 extends JFrame {

  // 定義組件
  JTextArea jta = null;// 多行文本框
  JScrollPane jsp = null;
  JPanel jp1 = null;// 面板
  JComboBox jcb = null;// 下拉框組件
  JTextField jtf = null;// 文本框
  JButton jb = null;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Demo15 d5 = new Demo15();

  }

  // 構(gòu)造函數(shù)
  public Demo15() {
    // 多行文本框會(huì)根據(jù)情況自己調(diào)節(jié)大小
    jta = new JTextArea();
    jsp = new JScrollPane(jta);
    jp1 = new JPanel();
    String j2[] = { "北京", "商行", "農(nóng)行", "師大", "附中", "哈爾濱" };
    jcb = new JComboBox(j2);
    // 文本框最好設(shè)置初值
    jtf = new JTextField(10);
    jb = new JButton("發(fā)送");
    // 布局管理
    // this.setLayout(new GridLayout(1, 1));
    // 添加
    jp1.add(jcb);
    jp1.add(jtf);
    jp1.add(jb);
    // 多行文本框是放在這里(JFrame)的!!!
    // 因?yàn)樯厦嬗痔砑涌梢詽L動(dòng)的功能,這里傳入jsp,而不是jta
    this.add(jsp);
    // 下面這里就需要定位處理
    this.add(jp1, BorderLayout.SOUTH);

    // 設(shè)置窗體屬性,z這里很厲害!!
    this.setIconImage((new ImageIcon("images\\3.jpg")).getImage());

    this.setSize(300, 200);
    this.setTitle("QQ登錄");
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }
}

代碼實(shí)例8:

package com.zhouzhou;

//QQ登錄界面制作
import java.awt.*;
import javax.swing.*;

public class Demo16 extends JFrame {

  // 北部區(qū)域
  JLabel jl1;

  // 南部區(qū)域
  JButton jb1, jb2, jb3;
  JPanel jp1;

  // 中部區(qū)域
  JTabbedPane jtp;// 選項(xiàng)卡窗格
  JPanel jp2, jp3, jp4;

  JLabel jl2, jl3, jl4, jl5;
  // 號(hào)碼輸入文本框
  JTextField jtf;
  // 密碼
  JPasswordField jpf;
  // 清除號(hào)碼
  JButton jb4;
  // 隱身登錄、記住密碼
  JCheckBox jcb1, jcb2;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    new Demo16();

  }

  public Demo16() {

    // 創(chuàng)建組件
    jl2 = new JLabel("QQ號(hào)碼", JLabel.CENTER);
    jl3 = new JLabel("QQ密碼", JLabel.CENTER);
    jl4 = new JLabel("忘記密碼", JLabel.CENTER);
    jl4.setFont(new Font("宋體", Font.PLAIN, 16));// 設(shè)置字體樣式
    jl4.setForeground(Color.BLUE);// 設(shè)置字體顏色
    jl5 = new JLabel("<html><a href='www.qq.com'>申請(qǐng)密碼保護(hù)</a></html>");
    // 鼠標(biāo)觸發(fā)變化
    jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

    jtf = new JTextField();
    jpf = new JPasswordField();
    jb4 = new JButton(new ImageIcon("images\\login.png"));

    jcb1 = new JCheckBox("隱身登錄");
    jcb2 = new JCheckBox("記住密碼");

    // 北部區(qū)域
    jl1 = new JLabel(new ImageIcon("images\\headpicture.jpg"));

    // 南部區(qū)域
    jp1 = new JPanel();
    jb1 = new JButton(new ImageIcon("images\\login.png"));
    jb2 = new JButton(new ImageIcon("images\\delete.png"));
    jb3 = new JButton(new ImageIcon("images\\register.png"));

    // 中部區(qū)域
    jtp = new JTabbedPane();
    jp2 = new JPanel();
    jp3 = new JPanel();
    jp3.setBackground(Color.RED);// 給面板設(shè)置背景
    jp4 = new JPanel();
    jp4.setBackground(new Color(0, 0, 255));

    // 將面板添加到選項(xiàng)卡窗格上
    jtp.add("QQ號(hào)碼", jp2);// 參數(shù):選項(xiàng)卡名稱,面板
    jtp.add("手機(jī)號(hào)碼", jp3);
    jtp.add("電子郵箱", jp4);

    // 設(shè)置布局
    jp2.setLayout(new GridLayout(3, 3));

    // 添加組件
    jp1.add(jb1);
    jp1.add(jb2);
    jp1.add(jb3);

    jp2.add(jl2);
    jp2.add(jtf);
    jp2.add(jb4);
    jp2.add(jl3);
    jp2.add(jpf);
    jp2.add(jl4);
    jp2.add(jcb1);
    jp2.add(jcb2);
    jp2.add(jl5);

    this.add(jp1, BorderLayout.SOUTH);
    this.add(jl1, BorderLayout.NORTH);
    this.add(jtp, BorderLayout.CENTER);

    // 展示組件
    ImageIcon icon = new ImageIcon("images\\qq.png");
    this.setIconImage(icon.getImage());// 給窗體設(shè)置圖標(biāo)方法
    this.setSize(400, 380);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }
}

代碼實(shí)例9:

package com.zhouzhou;

//記事本界面
import java.awt.*;
import javax.swing.*;

import java.awt.event.*;

public class Demo17 extends JFrame {

  // 工具條
  JToolBar jtb;
  JButton jb1, jb2, jb3, jb4, jb5, jb6;

  // 菜單條組件
  JMenuBar jmb;
  JMenu menu1, menu2, menu3, menu4, menu5;
  JMenuItem item2, item3, item4, item5, item6, item7;
  JMenu xinjian;// 二級(jí)菜單
  JMenuItem file, project;

  JTextArea jta;

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    new Demo17();

  }

  public Demo17() {

    // 創(chuàng)建工具條
    jtb = new JToolBar();
    jb1 = new JButton(new ImageIcon("images\\11.png"));
    jb1.setToolTipText("新建");
    jb2 = new JButton(new ImageIcon("images\\22.png"));
    jb2.setToolTipText("打開");
    jb3 = new JButton(new ImageIcon("images\\33.png"));
    jb3.setToolTipText("等待");
    jb4 = new JButton(new ImageIcon("images\\44.png"));
    jb4.setToolTipText("統(tǒng)計(jì)");
    jb5 = new JButton(new ImageIcon("images\\55.png"));
    jb5.setToolTipText("參與");
    jb6 = new JButton(new ImageIcon("images\\66.png"));
    jb6.setToolTipText("旁觀");

    jmb = new JMenuBar();

    menu1 = new JMenu("文件(F)");
    menu1.setMnemonic('F');// 設(shè)置助記符
    menu2 = new JMenu("編輯(E)");
    menu2.setMnemonic('E');
    menu3 = new JMenu("格式(O)");
    menu3.setMnemonic('O');
    menu4 = new JMenu("查看(V)");
    menu4.setMnemonic('V');
    menu5 = new JMenu("幫助(H)");
    menu5.setMnemonic('H');

    // item1=new JMenuItem(“新建”)
    xinjian = new JMenu("新建");
    file = new JMenuItem("文件");
    project = new JMenuItem("工程");

    item2 = new JMenuItem("打開", new ImageIcon("images\\77.png"));
    item3 = new JMenuItem("保存(S)");
    item3.setMnemonic('S');
    // 給菜單選項(xiàng)添加快捷方式
    item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
        InputEvent.ALT_MASK));
    item4 = new JMenuItem("另存為");
    item5 = new JMenuItem("頁(yè)面設(shè)置");
    item6 = new JMenuItem("打印");
    item7 = new JMenuItem("退出");

    jta = new JTextArea();

    // 設(shè)置布局

    // 添加組件
    // 將按鈕添加到工具條上
    jtb.add(jb1);
    jtb.add(jb2);
    jtb.add(jb3);
    jtb.add(jb4);
    jtb.add(jb5);
    jtb.add(jb6);

    // 將菜單添加到菜單欄上
    xinjian.add(file);
    xinjian.add(project);

    menu1.add(xinjian);
    menu1.add(item2);
    menu1.add(item3);
    menu1.add(item4);
    menu1.addSeparator();// 添加分割線
    menu1.add(item5);
    menu1.add(item6);
    menu1.addSeparator();
    menu1.add(item7);

    // 將菜單添加到菜單條上
    jmb.add(menu1);
    jmb.add(menu2);
    jmb.add(menu3);
    jmb.add(menu4);
    jmb.add(menu5);

    // 將菜單添加到窗體上
    this.setJMenuBar(jmb);

    // 將工具條添加到窗體
    this.add(jtb, BorderLayout.NORTH);

    JScrollPane jsp = new JScrollPane(jta);
    jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    this.add(jsp);

    // 展示
    this.setTitle("記事本");
    ImageIcon icon = new ImageIcon("images\\jsb.png");
    this.setIconImage(icon.getImage());
    this.setSize(1200, 900);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);

  }

}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談MySQL中是如何實(shí)現(xiàn)事務(wù)提交和回滾的

    淺談MySQL中是如何實(shí)現(xiàn)事務(wù)提交和回滾的

    本文主要介紹了MySQL中是如何實(shí)現(xiàn)事務(wù)提交和回滾的,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • JavaGUI使用標(biāo)簽與按鈕方法詳解

    JavaGUI使用標(biāo)簽與按鈕方法詳解

    這篇文章主要介紹了JavaGUI使用標(biāo)簽與按鈕方法,前段時(shí)間學(xué)了GUI,總體上概念還是有點(diǎn)模糊,于是決定花點(diǎn)時(shí)間簡(jiǎn)單整理下。先簡(jiǎn)單介紹一下GUI,GUI就是圖形用戶界面
    2023-03-03
  • 通過Mybatis實(shí)現(xiàn)單表內(nèi)一對(duì)多的數(shù)據(jù)展示示例代碼

    通過Mybatis實(shí)現(xiàn)單表內(nèi)一對(duì)多的數(shù)據(jù)展示示例代碼

    最近做項(xiàng)目遇到這樣的需求要求將表中的數(shù)據(jù),按照一級(jí)二級(jí)分類返回給前端json數(shù)據(jù),下面通過本文給大家分享通過Mybatis實(shí)現(xiàn)單表內(nèi)一對(duì)多的數(shù)據(jù)展示示例代碼,感興趣的朋友參考下吧
    2017-08-08
  • java獲取當(dāng)前時(shí)間并格式化代碼實(shí)例

    java獲取當(dāng)前時(shí)間并格式化代碼實(shí)例

    這篇文章主要介紹了java獲取當(dāng)前時(shí)間并格式化代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Springboot全局異常捕獲及try catch區(qū)別解析

    Springboot全局異常捕獲及try catch區(qū)別解析

    這篇文章主要介紹了Springboot全局異常捕獲及try catch區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 詳解在Spring MVC或Spring Boot中使用Filter打印請(qǐng)求參數(shù)問題

    詳解在Spring MVC或Spring Boot中使用Filter打印請(qǐng)求參數(shù)問題

    這篇文章主要介紹了詳解在Spring MVC或Spring Boot中使用Filter打印請(qǐng)求參數(shù)問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 利用JSONObject.toJSONString()包含或排除指定的屬性

    利用JSONObject.toJSONString()包含或排除指定的屬性

    這篇文章主要介紹了利用JSONObject.toJSONString()包含或排除指定的屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java面向?qū)ο缶幊填惖膬?nèi)聚性分析

    java面向?qū)ο缶幊填惖膬?nèi)聚性分析

    高內(nèi)聚、低耦合是軟件設(shè)計(jì)中非常關(guān)鍵的概念。在面向?qū)ο蟪绦蛟O(shè)計(jì)中類的劃分時(shí),類的內(nèi)聚性越高,其封裝性越好,越容易復(fù)用
    2021-10-10
  • springboot項(xiàng)目中application.properties無法變成小樹葉問題解決方案

    springboot項(xiàng)目中application.properties無法變成小樹葉問題解決方案

    這篇文章主要介紹了springboot項(xiàng)目中application.properties無法變成小樹葉問題解決,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • zookeeper的Leader選舉機(jī)制源碼解析

    zookeeper的Leader選舉機(jī)制源碼解析

    這篇文章主要為大家介紹了zookeeper的Leader選舉源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論