• Swing之滚动条


    JScrollPane的创建。  
    1、创建时指定内部控件,如: JScrollPane sp = new JScrollPane(img);  
    2、创建后指出内部控件,如:scrollPane.setViewportView(panel1);  
    常用的一些方法  
    指定内部控件  
    scrollPane.setViewportView(panel1);  
    设定水平表头  
    scrollPane.setColumnHeaderView(new JLabel("水平表头"));  
    设定垂直表头  
    scrollPane.setRowHeaderView(new JLabel("垂直表头"));  
    设定显示区的边框格式  
    scrollPane.setViewportBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));  
    设定转角处样式  
    scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER,new JLabel(new ImageIcon("./icons/glass.jpg")));  
    scrollPane.setCorner(JScrollPane.UPPER_RIGHT_CORNER,new JLabel(new ImageIcon("./icons/glass.jpg")));  

    setViewportView    
    public   void   setViewportView(Component   view)创建一个视口(如果有必要)并设置其视图。不直接为   JScrollPane   构造方法提供视图的应用程序应使用此方法指定将显示在滚动窗格中的滚动组件子级。例如: 

    JScrollPane   scrollpane   =   new   JScrollPane();    
    scrollpane.setViewportView(myBigComponentToScroll);   

    应用程序不应将子级直接添加到滚动窗格。 

    1。定义实例:JScrollPane jsp=new JScrollPane(某个继承自JPanel类的实例 pane); 
    2。设置初始大小:jsp.setPreferredSize(new Dimension(200,200)); 
    3。在适当的时候(已经判断出jsp容纳不下里面的内容时)重新设置大小:jsp.setPreferredSize(一个新的Dimension); 
    4。调用jsp.revalidate(); 
    5。调用jsp.repaint(); 
    Tips: 
    有一个JScrollPane的成员函数是scrollRectToVisible(Rectangle rect);该成员函数能够使某一块rect在当前的滚动面板内可见,即滚动面板能够通过滚动来使得需要显示的区域(由rect界定出的那块区域)被显示。  
    1、在使用了JScrollPane的JTextArea中,当指定JTextArea大小后,如何使当一行的数据过长时,自动折行,而不是出现横滚动条; 
    2、在使用了JScrollPane的JTable中,如何指定JTable的宽度,当大于JScrollPane的显示区域时,自动显示横滚动条,而不是压缩JTable中的每一列的宽度。  
    可以参照java 图形核心卷2的介绍http://ecapital.myetang.com/swing/tutorial/s02/index.html 
    第一个问题:

    mport java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    public class JTextArea2{ 
    public static void main(String[] args){ 
      JFrame f=new JFrame("JTextArea2"); 
      Container contentPane=f.getContentPane(); 
      contentPane.setLayout(new BorderLayout()); 
      JPanel p1=new JPanel(); 
      p1.setLayout(new GridLayout(1,1)); 
      p1.setBorder(BorderFactory.createTitledBorder("构造TextArea-使用GridLayout,加ScrollBar")); 
      JTextArea t1=new JTextArea(5,25); 
      t1.setTabSize(10); 
      t1.setFont(new Font("标楷体",Font.BOLD,16)); 
      t1.setLineWrap(true);//激活自动换行功能 
      t1.setWrapStyleWord(true);//激活断行不断字功能 
      p1.add(new JScrollPane(t1));//将JTextArea放入JScrollPane中,这样就能利用滚动的效果看到输入超过JTextArea高度的 
      //文字. 
      contentPane.add(p1); 
      f.pack(); 
      f.show(); 
      f.addWindowListener(new WindowAdapter(){ 
        public void windowClosing(WindowEvent e){ 
          System.exit(0); 
        } 
      }); 
    } 
    }

    其实在Document中你可以更灵活的控制 
    第二个问题,把JTable的AUTO_RESIZE_OFF  
    、在使用了JScrollPane的JTable中,如何指定JTable的宽度,当大于JScrollPane的显示区域时,自动显示横滚动条,而不是压缩JTable中的每一列的宽度 
    add the following line: 
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    更多学习资料:Here

  • 相关阅读:
    saiku导出excel单元格格式与中文列宽自动适应
    saiku中过滤窗口优化及隐藏异常报错
    saiku之固定维度(必选维度)
    saiku中多cube排序问题
    saiku中默认级别all的国际化
    Nginx基本配置、性能优化指南
    Nginx安装部署
    64位虚拟机中安装CentOS_6.7
    memcached全面剖析–5. memcached的应用和兼容程序
    memcached全面剖析–4. memcached的分布式算法
  • 原文地址:https://www.cnblogs.com/cha1r/p/3438420.html
Copyright © 2020-2023  润新知