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

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

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

    有才華的人,別忘記給滋潤你的那塊土壤施肥

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      28 隨筆 :: 5 文章 :: 147 評論 :: 0 Trackbacks

         
            有時候為了使JTable配合軟件風格配置不同的顏色,當table的有表頭以及添加了JScrollPane有ScollBar的時候會出現有個右上角有個區域的顏色是和底色是一樣的,如下圖1:
                           
                                                                   圖一

            為了使得那個灰色區域和table header 的顏色一致,一時居然不知道如何是好,趕快查jdk的API文檔發現這個圖二:

                           
                                                 圖二
    知道了這個corner component就好辦了,那就添加如下:

    jScrollPane1.getCorner(JScrollPane.UPPER_RIGHT_CORNER).setBackground(Color.red),

    卻又發現jScrollPane1.getCorner(JScrollPane.UPPER_RIGHT_CORNER)為NULL,原來要給他添加一個corner component,
    那就再添加如下代碼:

            JLabel jb = new JLabel();    
            jb.setBackground(Color.black);
            jScrollPane1.setCorner(JScrollPane.UPPER_RIGHT_CORNER, jb);

    但是通過測試發現那個corner的顏色依然沒有灰色,郁悶!!查找資料得將lable.setOpaque(true)

    關于此方法的解釋如下:
    如果為 true,則該組件繪制其邊界內的所有像素。否則該組件可能不繪制其某些或所有像素,從而允許其下面的像素透視出來。

    對于 JComponent 而言,此屬性的默認值是 false。但是對于大多數標準的 JComponent 子類(如 JButtonJTree),此屬性的默認值是和外觀相關的。

    這樣就效果如圖三:
                         
                                                  圖三

    不過當時不知道這個setOpaque(true),而是用了另外一個比較笨的方法,如:

            JLabel jb = new JLabel();    
            
    //jb.setOpaque(true);
            jb.setBackground(Color.black);
            jb.setBorder(BorderFactory.createLineBorder(Color.red, 
    20));
            jScrollPane1.setCorner(JScrollPane.UPPER_RIGHT_CORNER, jb);


    測試的代碼如:

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.SwingConstants;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableModel;

    public class KJTable extends JFrame{
        
    private JTable table;
        
    private KJTableCellRenderer renderer = new KJTableCellRenderer();
        
    private BorderLayout borderLayout = new BorderLayout();
        
    private JScrollPane jScrollPane1 = new JScrollPane();
        
    public KJTable(){
            
    this.setLayout(borderLayout);
            table 
    = new JTable();
            table.setRowHeight(
    20);
            Object rows[][] 
    ={
                    
    "王明""中國"44 },
                    
    "姚明""中國"25 },
                    
    "趙子龍""西蜀"1234 },
                    
    "曹操""北魏"2112 },
                    
    "Bill Gates""美國"45 },
                    
    "Mike""英國"33 },
                    
    "王明""中國"44 },
                    
    "姚明""中國"25 },
                    
    "趙子龍""西蜀"1234 },
                    
    "曹操""北魏"2112 },
                    
    "Bill Gates""美國"45 },
                    
    "Mike""英國"33 }}
    ;
            String columns[] 
    = "姓名""國籍""年齡" };
            TableModel model 
    = new DefaultTableModel(rows, columns);
            JTable table 
    = new JTable(model);    
            table.setModel(model);
            table.getTableHeader().setDefaultRenderer(renderer);
            table.setDefaultRenderer(Object.
    class, renderer);
            jScrollPane1.getViewport().add(table);
            getContentPane().add(jScrollPane1, BorderLayout.CENTER);        
            JLabel jb 
    = new JLabel();    
            
    //jb.setOpaque(true);
            jb.setBackground(Color.black);
            jb.setBorder(BorderFactory.createLineBorder(Color.red, 
    20));
            jScrollPane1.setCorner(JScrollPane.UPPER_RIGHT_CORNER, jb);        
            
    this.setSize(300200);
            
    this.setVisible(true);
            
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }

        
    public static void main(String[] args) {
            
    new KJTable();
        }
        
        
    private class KJTableCellRenderer extends JLabel implements TableCellRenderer{
            
    public Component getTableCellRendererComponent(JTable table, Object value,
                                
    boolean isSelected, boolean hasFocus, int row, int col) {            
                
    if(row<0){
                    setHorizontalAlignment(SwingConstants.CENTER);
                    setBackground(
    new Color(45,145,180));
                    setForeground(Color.white);
                }
        
                
    else {
                    setHorizontalAlignment(SwingConstants.LEFT);
                    
    if(row %2 == 0){
                        setBackground(
    new Color(255,255,205));
                        setForeground(Color.blue);
                    }

                    
    else{
                        setBackground(
    new Color(255,220,150));
                        setForeground(Color.red);
                    }
                
                }
            
                setText(value.toString());
                setOpaque(
    true);//
                return this;
            }
        
        }

    }

    posted on 2008-03-21 17:08 kissjava 閱讀(2431) 評論(0)  編輯  收藏 所屬分類: swing
    主站蜘蛛池模板: 免费看成人AA片无码视频吃奶| 久久久久久成人毛片免费看| 中文字幕第一页亚洲| 免费播放在线日本感人片| 亚洲日本在线观看网址| 日韩特黄特色大片免费视频| 国产综合免费精品久久久| 亚洲乱码无限2021芒果| 亚洲成a人片在线观看日本麻豆| 精品国产免费一区二区三区香蕉| 亚洲av无码专区在线| 精品国产日韩亚洲一区| 1000部拍拍拍18免费网站| 免费国产污网站在线观看不要卡 | 亚洲AV无码专区电影在线观看 | aaa毛片免费观看| 亚洲乱码中文字幕小综合| 亚洲精品一级无码鲁丝片| a拍拍男女免费看全片| 乱淫片免费影院观看| 亚洲va在线va天堂va手机| 亚洲色婷婷综合开心网| 久草在视频免费福利| 中文字幕在线免费视频| 久久亚洲精品高潮综合色a片| 亚洲AV无码成人网站久久精品大 | 东北美女野外bbwbbw免费| 亚洲精品午夜国产va久久| 亚洲va在线va天堂va888www| 亚洲国产成人久久综合一区77| 男女免费观看在线爽爽爽视频 | 三根一起会坏掉的好痛免费三级全黄的视频在线观看| 久久精品亚洲精品国产色婷 | 亚洲成年人在线观看| 免费成人在线观看| 青青视频观看免费99| 99re6在线精品视频免费播放| 一级a性色生活片久久无少妇一级婬片免费放 | 国产h视频在线观看免费| 日韩免费在线观看视频| 久久不见久久见免费影院www日本|