(整理)Java--Swing的一些记录(JTable及其他)

如题,整理一些Java编程中Swing方面的小技巧,是我自己的项目中用到的,大部分是网上找的,也有些微的原创。这些东西本身没有什么难度,不过不知道的话也确实做不出这些效果,所以整理并记录下来。
//table内容居中
                         jTable1 = new JTable(){
                            public TableCellRenderer getCellRenderer(int row, int column) {
                            TableCellRenderer renderer = super.getCellRenderer(row, column);
                            if (renderer instanceof JLabel) {
                                ((JLabel) renderer).setHorizontalAlignment(JLabel.CENTER);
                            }
                            return renderer;
                        }
                        };
 //设置JTable的ColumnName的样式(放在界面初始化之前)
            UIManager. put( "TableHeader.font" ,new Font("Monospaced" ,Font.PLAIN,20));

//JTable自动调整列宽
public class ColumnResizer {
       public static void adjustColumnPreferredWidths(JTable table){
            TableColumnModel columnModel=table.getColumnModel();
             for(int col=0;col<table.getColumnCount();col++){
                   int maxwidth=0;
                   for(int row=0;row<table.getRowCount();row++){
                        TableCellRenderer rend=table.getCellRenderer(row, col);
                        Object value=table.getValueAt(row, col);
                        Component comp=rend.getTableCellRendererComponent(table, value, false, false, row, col);
                        maxwidth=Math. max(comp.getPreferredSize().width,maxwidth);
                  }
                  TableColumn column=columnModel.getColumn(col);
                  TableCellRenderer headerRenderer=column.getHeaderRenderer();
                   if(headerRenderer==null){
                        headerRenderer=table.getTableHeader().getDefaultRenderer();
                  }
                  Object headerValue=column.getHeaderValue();
                  Component headerComp=headerRenderer.getTableCellRendererComponent(table, headerValue, false , false, 0, col);
                  maxwidth=Math. max(maxwidth, headerComp.getPreferredSize().width );
                  column.setPreferredWidth(maxwidth);
            }
      }
}

//设置JTabbedPane的样式
public class JTabPaneUI extends BasicTabbedPaneUI{
       protected int calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics){
          return super .calculateTabWidth(tabPlacement, tabIndex, metrics)+40;
      }

       protected int calculateTabHeight(int tabPlacement, int tabIndex, int fontHeight){
          return super .calculateTabHeight(tabPlacement, tabIndex, fontHeight)+20;
      }

}

//鼠标停留后显示贴士(Jbutton为例,贴士支持html语言)
buttons [i].setToolTipText(html.CovertDestionString(listcompany.get(i).getCompanyInfo()));
//java中查看图片,如果查看一次之后图片内容更改了,那么再次查看图片还会显示第一次的图片需进行重新读入(label为JLabel)
       public void repaintlabel(String path){
             if(path!=null && !path.equals("")){
                   try {
                         icon = new ImageIcon(ImageIO.read (new File(path)));
                  } catch (IOException e) {
                        e.printStackTrace();
                  }
                   label.setIcon(icon );
            } else{
                   label.setIcon(new ImageIcon("images/test/暂无图片.jpg"));
            }
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值