<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    何以解憂?唯有Java

    其實(shí)程序員也懂得浪漫!
    posts - 90, comments - 637, trackbacks - 0, articles - 2
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    關(guān)鍵字: swinghacks,swing

    接著上次的進(jìn)度,上次寫完了背景,

    SwingHacks學(xué)習(xí)筆記(1)-----自定義JPanel(一個(gè)以圖像填充的組件)

    現(xiàn)在可以考慮標(biāo)簽和按鈕了。

    這個(gè)標(biāo)簽是位于背景上的某個(gè)位置的靜態(tài)圖像。

    例1.3:一個(gè)圖像標(biāo)簽類

    package org.component;

    import javax.swing.ImageIcon;
    import javax.swing.JLabel;

    /**
     *
     * 
    @author root
     
    */
    public class ImageLabel extends JLabel {
        
         
    public ImageLabel(String img) {
            
    this(new ImageIcon(img));
            System.out.print(img);
        }


        
    public ImageLabel(ImageIcon icon)
        {
            
    //得到的是圖像的長(zhǎng)和寬
            setSize(icon.getImage().getWidth(null),icon.getImage().getHeight(null));
            setIcon(icon);   
    //設(shè)置圖像
            setIconTextGap(0);  //設(shè)置文本間隙
            setBorder(null);  //設(shè)置邊框和文本為null,這樣可以消除圖像周圍的多余空間。
            setText(null);
            setOpaque(
    false);  //告訴標(biāo)簽不要繪制自己的背景。即可以變成透明的。
        }
        
    }

    寫完上面的代碼后就可以在ImageTest 的main 方法里加入下面這段代碼:
    ImageLabel2 label = new ImageLabel2(new ImageIcon(ImagePanelTest.class.getResource("/images/stop.png")));
     
    label.setLocation(
    13040);
    panel.add(label);

    測(cè)試一個(gè)效果:(這次換個(gè)背景,原來(lái)的背景太鮮艷了,這次換個(gè)淡點(diǎn)的。

    注意紅色的stop圖表:


    既然ImageLabel 效果有了,現(xiàn)在開始寫ImageButton了


    package org.component;

    import java.awt.Insets;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;

    /**
     *
     * 
    @author root
     
    */
    public class ImageButton extends JButton {
        
        
    public ImageButton(String img) {
            
    this(new ImageIcon(img));
            System.out.print(img);
        }

        
    public ImageButton(ImageIcon icon) {
            setSize(icon.getImage().getWidth(
    null),icon.getImage().getHeight(null));
            setIcon(icon);
            setMargin(
    new Insets(0000)); //設(shè)置按鈕邊框和標(biāo)簽之間的空白
            setIconTextGap(0);   //設(shè)置文本間隙
            setBorderPainted(false); //設(shè)置是否允許繪制邊框
            
            setBorder(
    null);  
            setText(
    null);
        }
        
    }

    為ImageButton 添加互動(dòng)和其他狀態(tài),幸運(yùn)的是,這項(xiàng)工作不需要自己編寫,JButton 已經(jīng)為表示滾動(dòng),按下,選中,失效和失效選中狀態(tài)的圖像提供了支持。可通過(guò)普通的set方法添加各種選中狀態(tài):

    在ImageTest 的main 方法里加入

     
           
    final ImageButton button = new ImageButton(new ImageIcon(ImagePanelTest.class.getResource("/images/sure1.png")));
            button.setLocation(
    18080);
            button.setPressedIcon(
    new ImageIcon(ImagePanelTest.class.getResource("/images/sure3.png")));
            button.setRolloverIcon(
    new ImageIcon(ImagePanelTest.class.getResource("/images/sure-Rollover.png")));
            button.setSelectedIcon(
    new ImageIcon(ImagePanelTest.class.getResource("/images/sure3.png")));
            button.setRolloverSelectedIcon(
    new ImageIcon(ImagePanelTest.class.getResource("/images/sure-rolloverselected.png")));
            button.setDisabledIcon(
    new ImageIcon(ImagePanelTest.class.getResource("/images/sure-disable.png")));
            button.setDisabledSelectedIcon(
    new ImageIcon(ImagePanelTest.class.getResource("/images/sure-disable.png")));
            
             button.addActionListener(
    new ActionListener() {
                
    public void actionPerformed(ActionEvent evt) {
                    button.setSelected(
    !button.isSelected());
                    System.out.println(
    "selecting");
                }            
            });

     panel.add(button);      

      看看效果圖:



    現(xiàn)在添加一個(gè)可以控制按鈕是否可用的方法。我們可以借助JCheckBox 來(lái)實(shí)現(xiàn)

    在ImageTest main 方法里添加以下代碼:

      final JCheckBox checkbox = new JCheckBox("Disable");
            checkbox.setLocation(
    180,150);
            checkbox.setOpaque(
    false);
            checkbox.setSize(checkbox.getPreferredSize());
            panel.add(checkbox);
            checkbox.addActionListener(
    new ActionListener() {
                
    public void actionPerformed(ActionEvent evt) {
                    button.setEnabled(
    !checkbox.isSelected());
                }
            });
           

    然后在進(jìn)行測(cè)試 ,效果如下:

     

    項(xiàng)目里的所需的圖片文件都在附件里 點(diǎn)擊這里下載


    主站蜘蛛池模板: 亚洲伊人久久精品影院| a毛片在线看片免费| 亚洲国产美女视频| 国外亚洲成AV人片在线观看| 精品国产免费观看| 99久在线国内在线播放免费观看| 羞羞视频网站免费入口| 国产午夜亚洲精品国产| 亚洲美女中文字幕| 亚洲国产精品无码专区| 亚洲精品一级无码中文字幕| 在线免费一区二区| 国产福利视精品永久免费| 免费播放一区二区三区| 国产羞羞的视频在线观看免费| 一级毛片免费毛片毛片| 福利片免费一区二区三区| 亚洲色大成网站www永久男同| 亚洲乱码一二三四区国产| 777亚洲精品乱码久久久久久 | 亚洲AV本道一区二区三区四区| 亚洲阿v天堂在线2017免费| 日韩成人免费视频播放| 毛片a级三毛片免费播放| 免费大片黄在线观看yw| 久久久久久精品成人免费图片 | 免费国产精品视频| 四虎永久成人免费| 免费国产成人午夜私人影视| 四虎国产精品免费久久影院| 国产精品嫩草影院免费| 日本v片免费一区二区三区| 国产在线观看免费不卡| 国产乱子伦精品免费无码专区| 在线看片无码永久免费aⅴ| 国产又黄又爽又猛的免费视频播放 | 亚洲精品在线免费看| 精品国产免费人成电影在线观看| 99re这里有免费视频精品| 亚洲人成免费电影| 国产一精品一AV一免费孕妇|