A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[原创]DVD管理系统项目之四--初识图形用户界面


问题说明:


终于把程序的核心做完了,,那你一定要搞个AWT界面练练手,,虽然程序员不太用,(而且说实话,java的图形用户界面太坑了),,

不过我们还是了解下吧,,,第一次用,很蛋疼,但是还是挺好玩的,,,

先看看效果,,,呵呵:







讲下思路:

说实话,第一次看书上的代码也是一头雾水,什么乱其八遭的,慢慢的发现,其实就思想和HTML+CSS+JS+DOM的有点像;

玩过html的兄弟应该知道,用〈a〉标签和display:none,可以做出一个在一个div中显示不同内容的功能;


这里我们照葫芦画飘,也用相同思来实现。

JPanel  就相当于 div
JLabel  也就是 html<label>的升级版,可显示文本,

其他的,,什么
  1. private JLabel title;
  2.         private JLabel vesion;
  3.         private JButton exit;
  4.         private JButton chartsBang;
  5.         private JButton backtoDVD;
  6.         private JButton lendedDVD;
  7.         private JButton deleDVD;
  8.         private JButton checkDVD;
  9.         private JButton addDVD;
  10.         private JPanel menu;
  11.         private JPanel add;
  12.         private JPanel check;
  13.         private JPanel dele;
  14.         private JPanel lended;
  15.         private JPanel backto;
  16.         private JPanel chartsPaiHangBang;
  17.         private JButton reMain;
复制代码
都是一样的道理。

ok,,开工,,,
先导包。。
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
复制代码
你看第一页的框架:基本上就懂了:
  1. private void initGUI() {
  2.                 try {
  3.                         FlowLayout thisLayout = new FlowLayout();
  4.                         setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  5.                         getContentPane().setLayout(thisLayout);
  6.                         this.setTitle("DVD\u7ba1\u7406\u7cfb\u7edf");
  7.                         this.setResizable(false);
  8.                         {
  9.                                 title = new JLabel();
  10.                                 getContentPane().add(title);
  11.                                 title.setText("\u6b22\u8fce\u4f7f\u7528DVD\u7ba1\u7406\u7cfb\u7edf");
  12.                                 title.setPreferredSize(new java.awt.Dimension(287, 75));
  13.                                 title.setFont(new java.awt.Font("黑体", 1, 24));
  14.                                 title.setHorizontalAlignment(SwingConstants.CENTER);
  15.                                 title.setHorizontalTextPosition(SwingConstants.CENTER);
  16.                         }
  17.                         {
  18.                                 menu = new JPanel();
  19.                                 FlowLayout menuLayout = new FlowLayout();
  20.                                 menu.setLayout(menuLayout);
  21.                                 getContentPane().add(menu);
  22.                                 menu.setPreferredSize(new java.awt.Dimension(545, 223));
  23.                                 menu.setForeground(new java.awt.Color(255, 255, 255));
  24.                                 {
  25.                                         addDVD = new JButton();
  26.                                         menu.add(addDVD);
  27.                                         addDVD.setText("\u6dfb\u52a0DVD");
  28.                                         addDVD.setPreferredSize(new java.awt.Dimension(275, 24));

  29.                                 }
  30.                                 {
  31.                                         checkDVD = new JButton();
  32.                                         menu.add(checkDVD);
  33.                                         checkDVD.setText("\u67e5\u770bDVD");
  34.                                         checkDVD.setPreferredSize(new java.awt.Dimension(275, 24));
  35.                                 }
  36.                                 {
  37.                                         deleDVD = new JButton();
  38.                                         menu.add(deleDVD);
  39.                                         deleDVD.setText("\u5220\u9664DVD");
  40.                                         deleDVD.setPreferredSize(new java.awt.Dimension(275, 24));
  41.                                 }
  42.                                 {
  43.                                         lendedDVD = new JButton();
  44.                                         menu.add(lendedDVD);
  45.                                         lendedDVD.setText("\u501f \u51fa DVD");
  46.                                         lendedDVD.setPreferredSize(new java.awt.Dimension(275, 24));
  47.                                 }
  48.                                 {
  49.                                         backtoDVD = new JButton();
  50.                                         menu.add(backtoDVD);
  51.                                         backtoDVD.setText("\u5f52 \u8fd8 DVD");
  52.                                         backtoDVD.setPreferredSize(new java.awt.Dimension(275, 24));
  53.                                 }
  54.                                 {
  55.                                         chartsBang = new JButton();
  56.                                         menu.add(chartsBang);
  57.                                         chartsBang.setText("\u501f \u51fa  \u6392 \u884c \u699c");
  58.                                         chartsBang
  59.                                                         .setPreferredSize(new java.awt.Dimension(275, 24));
  60.                                 }
  61.                                 {
  62.                                         exit = new JButton();
  63.                                         menu.add(exit);
  64.                                         exit.setText("\u9000 \u51fa \u7cfb \u7edf");
  65.                                         exit.setPreferredSize(new java.awt.Dimension(275, 24));
  66.                                 }
  67.                         }
  68.                         // 版本
  69.                         {
  70.                                 vesion = new JLabel();
  71.                                 getContentPane().add(vesion);
  72.                                 vesion.setText("鸣谢:万琪    版本 1.0        ");
  73.                                 vesion.setPreferredSize(new java.awt.Dimension(551, 71));
  74.                                 vesion.setHorizontalTextPosition(SwingConstants.RIGHT);
  75.                                 vesion.setHorizontalAlignment(SwingConstants.RIGHT);
  76.                         }
复制代码
。。
ok,来个弹窗提示下,
  1. <blockquote><span class="Apple-tab-span" style="white-space:pre">                        </span>// 弹窗
复制代码
ok,继续,,加入监听器,,这个和DOM很像
  1. // 监听器
  2.         private void myEvent() {
  3.                 // 返回很重要
  4.                 reMain.addActionListener(new ActionListener() {

  5.                         @Override
  6.                         public void actionPerformed(ActionEvent e) {
  7.                                 // TODO Auto-generated method stub
  8.                                 reMain.setVisible(false);
  9.                                 add.setVisible(false);
  10.                                 check.setVisible(false);
  11.                                 dele.setVisible(false);
  12.                                 lended.setVisible(false);
  13.                                 backto.setVisible(false);
  14.                                 chartsPaiHangBang.setVisible(false);
  15.                                 title.setText("欢迎使用DVD管理系统");
  16.                                 menu.setVisible(true);
  17.                                 vesion.setVisible(true);

  18.                         }
  19.                 });
  20.                 addDVD.addActionListener(new ActionListener() {

  21.                         @Override
  22.                         public void actionPerformed(ActionEvent e) {
  23.                                 title.setText("向库中添加DVD");
  24.                                 menu.setVisible(false);
  25.                                 vesion.setVisible(false);
  26.                                 add.setVisible(true);
  27.                                 reMain.setVisible(true);

  28.                         }
  29.                 });
复制代码
ok,,大功告成,,,可以享受AWT的乐趣了,,哈哈哈




如果你有更好的解决代码,可以和我交流,十分感谢。。。。


另外,下一步要解决的问题:安全加密的dvd管理器,


评分

参与人数 1技术分 +2 收起 理由
袁梦希 + 2 赞一个!

查看全部评分

3 个回复

倒序浏览
{:soso__1039173773029404865_2:}膜拜。。。
回复 使用道具 举报
挺好的  不错
回复 使用道具 举报
谢谢版主分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马