Swing之滚动条

摘要:
JScrollPanesp=newJScrollPane(img);scrollPane.setViewportView(panel1);一些常用方法指定内部控件scrollPane。setViewportView(面板1);设置垂直标题滚动窗格。setRowHeaderView(newJLabel(“垂直标题”));调用jsp。repart();

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

免责声明:文章转载自《Swing之滚动条》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇以太坊: ETH 发送交易 sendRawTransaction 方法数据的签名 和 验证过程【原】C#子线程刷新主线程一例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(转)Linux下部署tomcat及tomcat war包应用程序

原文:http://www.cnblogs.com/smallfa/news/2017/07/17/7193620.html 1, 通过winscp将tomcat包(6和7版本都是一样的安装方法)和jdk-6u27-linux-x64.bin安装文件传送到linux 系统/opt里面.(这里没有固定要传送到/opt/hn,可以自己定义。) 2, 安装首先解...

jdk 8 的内存参数修改

jdk内存实际是jvm内存,jvm有一个运行时数据区,其实就是对这一部分的大小分配。运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap) Xss:每个线程的stack大小(栈)Xm...

sqlserver数据库中的mdf文件太大,表空间分析和表空间释放

查询数据库的大小: EXEC sp_spaceused 为了保证查询结果的实时性,推荐使用 @updateusage 参数来确保统计数据是最新的: EXEC sp_spaceused @updateusage = N'TRUE'; 具体查询某个表的大小: EXEC sp_spaceused 't_table' 分析查询数据库中所有表占用的内存大小: dec...

【转】获取屏幕分辨率及大小相关

vc得到屏幕的当前分辨率方法:1.Windows API调用int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystemMetrics ( SM_CYSCREEN ); 如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息. 2.获得分辨率BOOL EnumDisp...

[转载]使用iText操作pdf文件

使用iText操作pdf文件        前段时间写过一篇文章《java读取pdf文件的内容》,pig0045给我回复,说可以直接利用iText搞定,我很感激,因为以前处理pdf文件并不多,对这块相关组件并不了解,pig0045给我介绍了一个新的方法,谢谢!欣喜之余,马上google了一把iText,发现iText在生成pdf文件方面功能很强大,而在读取...

vue 支持 超大上G,多附件上传

之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需求,都能得到满足。小小开心了一把。   但无论插件再怎么灵活,也难以应付所有的需求,比如,你要上传一个2G的文件。以现在我们的网速,恐怕再快也得传半小时。要命...