swing storm

          java桌面應用

          導航

          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統(tǒng)計

          常用鏈接

          留言簿(15)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          今天發(fā)現(xiàn)了JTabbedPane的一個bug!

          當所有的tab被移除之后,背景上還留有原JTabbedPane所停留的痕跡(灰色邊框)。
          import java.awt.BorderLayout;
          import java.awt.Color;
          import java.awt.Dimension;
          import java.awt.event.MouseAdapter;
          import java.awt.event.MouseEvent;

          import javax.swing.JButton;
          import javax.swing.JFrame;
          import javax.swing.JLabel;
          import javax.swing.JPanel;
          import javax.swing.JTabbedPane;
          import javax.swing.border.EmptyBorder;

          public class TabbedPaneExample extends JFrame {
              JTabbedPane tabbedPane 
          = new JTabbedPane();

              JPanel tabbedPanePanel 
          = new JPanel();

              
          public void createAndShowGUI() {
                  tabbedPanePanel.setLayout(
          new BorderLayout());
                  tabbedPanePanel.setBackground(
          new Color(35119179));
                  tabbedPanePanel.setBorder(
          new EmptyBorder(58510));

                  tabbedPane.setBackground(
          new Color(79147196));
                  tabbedPane.setBorder(
          new EmptyBorder(0000));

                  tabbedPane.add(
          new JLabel("tab1"), "tab1");
                  tabbedPane.add(
          new JLabel("tab2"), "tab2");
                  
                  tabbedPanePanel.add(tabbedPane, BorderLayout.CENTER);
                  
                  JButton btn 
          = new JButton("close all");
                  btn.addMouseListener(
          new MouseAdapter() {
                      
          public void mouseClicked(MouseEvent e) {
                          tabbedPane.removeAll();
                      }
                  });

                  tabbedPanePanel.add(btn, BorderLayout.NORTH);
                  
                  
          this.setLayout(new BorderLayout());
                  
          this.add(tabbedPanePanel, BorderLayout.CENTER);
                  
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                  
          this.setSize(new Dimension(300200));
                  
          this.setLocationRelativeTo(null);
                  
          this.setVisible(true);
              }

              
          public static void main(String[] args) {
                  javax.swing.SwingUtilities.invokeLater(
          new Runnable() {
                      
          public void run() {
                          TabbedPaneExample example 
          = new TabbedPaneExample();
                          example.createAndShowGUI();
                      }
                  });
              }
          }

          posted on 2007-05-27 12:09 azure 閱讀(1819) 評論(5)  編輯  收藏

          評論

          # re: 今天發(fā)現(xiàn)了JTabbedPane的一個bug! 2007-05-27 14:46 ronghai

          你重新繪畫一下就行了 .在重新 設一下可視   回復  更多評論   

          # re: 今天發(fā)現(xiàn)了JTabbedPane的一個bug! 2007-05-27 14:47 ronghai

          this.repaint();
          this.setVisible(true);  回復  更多評論   

          # re: 今天發(fā)現(xiàn)了JTabbedPane的一個bug! 2007-05-27 15:22 azure

          謝謝你的建議,使用this.setVisible(false); 可以讓痕跡消失。這樣做繞過了這個bug。這樣做可以達到效果要求,:)
          不足的是在實際應用中在removeAll();之后還要add();
          如果使用了this.setVisible(false); 每次添加tab的時候還要this.setVisible(true)。
          我在想:tabbedPane.setBorder(new EmptyBorder(0, 0, 0, 0));
          之后removeAll();tabbedPane為什么還會有灰色的邊框,這是一個bug嗎。  回復  更多評論   

          # re: 今天發(fā)現(xiàn)了JTabbedPane的一個bug![未登錄] 2007-05-28 01:54 biaoflying

          1:要重回的話應該是TabbedPaneExample.this.repaint();
          2:但是沒有用  回復  更多評論   

          # re: 今天發(fā)現(xiàn)了JTabbedPane的一個bug![未登錄] 2007-05-29 09:10 wzjin

          在提交bug前是要注意些,前不久我也碰到類似情況,jdk升級以后以前有個功能不能實現(xiàn)了,后來加了兩行代碼就好了。  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 高唐县| 普兰县| 车致| 永嘉县| 克山县| 运城市| 灵璧县| 津市市| 辽中县| 华安县| 福州市| 桦南县| 东城区| 江阴市| 阜南县| 孝义市| 宜君县| 资源县| 五河县| 吐鲁番市| 寿阳县| 康乐县| 罗定市| 淮安市| 丰都县| 双辽市| 浦县| 平陆县| 长沙市| 铁岭县| 崇左市| 甘肃省| 鄂伦春自治旗| 蓬溪县| 夏河县| 曲阳县| 德惠市| 饶阳县| 大连市| 东乡| 本溪市|