第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java Swing JComboBox下拉框顯示圖片問題

java Swing JComboBox下拉框顯示圖片問題

炎炎設(shè)計 2019-03-14 14:15:42
public class mousergister extends JPanel {JPanel jp;JComboBox setImg;ComboBoxRenderer renderer;public static void main(String[] args) {     new mousergister(); } public mousergister() {     BaseFrame bf=new BaseFrame("用戶注冊");     bf.add(this);                    this.setLayout(null);     renderer = new ComboBoxRenderer();     renderer.setPreferredSize(new Dimension(100, 50));     Object elements[][] = {             { new MyIcon("images/1.jpg",this)},             { new MyIcon("images/2.gif",this) },             { new MyIcon("images/3.jpg",this)},             };     setImg = new JComboBox(elements);     setImg.setRenderer(renderer);                setImg.setBounds(120, 25, 75, 60);     add(setImg);     bf.setLocation(500, 100);// 設(shè)置窗口在屏幕的位置     bf.setSize(320, 420);     bf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);     bf.setResizable(false);// 設(shè)置游戲窗口大小不可改變     bf.setVisible(true); } private class ComboBoxRenderer extends JLabel implements ListCellRenderer {     // 這樣要是實現(xiàn)接口的方法:     /*      *       * This method finds the image and text corresponding to the selected      *       * value and returns the label, set up to display the text and image.      */     @Override     public Component getListCellRendererComponent(JList list, Object value,             int index, boolean isSelected, boolean cellHasFocus) {         ImageIcon image=null;          if (value instanceof Object[]) {              Object[] values = (Object[]) value;                                image = (ImageIcon)values[0];             }             if (image != null) {               this.setIcon(image);             }             return this;           }           } private class MyIcon extends ImageIcon{     private Image m;     private String str;     private mousergister jp;     public MyIcon(String str,mousergister jp) {         Toolkit tool;         tool = jp.renderer.getToolkit();         m = tool.getImage(str);       }      public void paintIcon(Component lab, Graphics g){         lab=jp.renderer;圖片不會顯示。。。怎么改?
查看完整描述

2 回答

?
幕布斯1329279

TA貢獻8條經(jīng)驗 獲得超0個贊

getListCellRendererComponent()方法是需要修改的。

參數(shù)value是Object類型,if的判斷條件value instanceof Object[]不會成立,if代碼塊是不會執(zhí)行的。

if (value instanceof Object[]) {

Object[] values = (Object[]) value;

image = (ImageIcon)values[0];

}

if (image != null) {

??????????????this.setIcon(image);???
????????????}???
????????????return?this;???
??????????}

改成下面的試試。
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {

????????if?(value?!=?null)?{
????????????setIcon(new?ImageIcon("images/1.jpg"));
????????}

????????if?(isSelected)?{
????????????setBackground(list.getSelectionBackground());
????????????setForeground(list.getSelectionForeground());
????????}?else?{
????????????setBackground(list.getBackground());
????????????setForeground(list.getForeground());
????????}
????????return?this;
????}


查看完整回答
反對 回復(fù) 2019-04-30
?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

Object elements[][] = {

{ new MyIcon("images/1.jpg",this)},

{ new MyIcon("images/2.gif",this) },

{ new MyIcon("images/3.jpg",this)},

};

這段直接用ImageIcon

Object elements[][] = {

{ new ImageIcon(this.getClass().getResource("images/1.jpg"))},

{ new ImageIcon(this.getClass().getResource("images/2.gif")) },

{ new ImageIcon(this.getClass().getResource("images/3.jpg"))},

};


查看完整回答
反對 回復(fù) 2019-04-30
  • 2 回答
  • 0 關(guān)注
  • 810 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號