JScrollPane的建立。
一、建立時指定內部控件,如: JScrollPane sp = new JScrollPane(img);
二、建立後指出內部控件,如: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 構造方法提供視圖的應用程序應使用此方法指定將顯示在滾動窗格中的滾動組件子級。例如: html
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界定出的那塊區域)被顯示。
一、在使用了JScrollPane的JTextArea中,當指定JTextArea大小後,如何使當一行的數據過長時,自動折行,而不是出現橫滾動條;
二、在使用了JScrollPane的JTable中,如何指定JTable的寬度,當大於JScrollPane的顯示區域時,自動顯示橫滾動條,而不是壓縮JTable中的每一列的寬度。
能夠參照java 圖形核心卷2的介紹http://ecapital.myetang.com/swing/tutorial/s02/index.html
第一個問題:java
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);api
更多學習資料:Herejsp