滚动面板(JScrollPane)

大多数时候你只想使用一个 JscrollPane 去执行滚动控制,不过你还可以去控制有哪些滚
动条是可用的:水平的、垂直的、两者都用还是两者都不用:


//: c14:JScrollPanes.java
// Controlling the scrollbars in a JScrollPane.
// <applet code=JScrollPanes width=300 height=725></applet>
import javax.swing.*;
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.border.*; 
import com.bruceeckel.swing.*; 


public class JScrollPanes extends JApplet { 
private JButton 
    b1 = new JButton("Text Area 1"), 
    b2 = new JButton("Text Area 2"), 
    b3 = new JButton("Replace Text"),
    b4 = new JButton("Insert Text"); 
private JTextArea 
    t1 = new JTextArea("t1", 1, 20), 
    t2 = new JTextArea("t2", 4, 20), 
    t3 = new JTextArea("t3", 1, 20), 
    t4 = new JTextArea("t4", 10, 10), 
    t5 = new JTextArea("t5", 4, 20), 
    t6 = new JTextArea("t6", 10, 10); 
private JScrollPane
    sp3 = new JScrollPane(t3, 
      JScrollPane.VERTICAL_SCROLLBAR_NEVER,
      JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), 
    sp4 = new JScrollPane(t4, 
      JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
      JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), 
    sp5 = new JScrollPane(t5, 
      JScrollPane.VERTICAL_SCROLLBAR_NEVER,
      JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS), 
    sp6 = new JScrollPane(t6, 
      JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
      JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
class B1L implements ActionListener {
public void actionPerformed(ActionEvent e) { 
      t5.append(t1.getText() + "\n");
    }
  }
class B2L implements ActionListener {
public void actionPerformed(ActionEvent e) { 
      t2.setText("Inserted by Button 2");
      t2.append(": " + t1.getText()); 
      t5.append(t2.getText() + "\n");
    }
  }
class B3L implements ActionListener {
public void actionPerformed(ActionEvent e) { 
      String s = " Replacement ";
      t2.replaceRange(s, 3, 3 + s.length());
    }
  }
class B4L implements ActionListener {
public void actionPerformed(ActionEvent e) { 
      t2.insert(" Inserted ", 10);
    }
  }
public void init() { 
    Container cp = getContentPane(); 
    cp.setLayout(new FlowLayout()); 
// Create Borders for components:
    Border brd = BorderFactory.createMatteBorder( 
      1, 1, 1, 1, Color.BLACK); 
    t1.setBorder(brd);
    t2.setBorder(brd);
    sp3.setBorder(brd); 
    sp4.setBorder(brd); 
    sp5.setBorder(brd); 
    sp6.setBorder(brd); 
// Initialize listeners and add components:
    b1.addActionListener(new B1L()); 
    cp.add(b1);
    cp.add(t1);
    b2.addActionListener(new B2L()); 
    cp.add(b2);
    cp.add(t2);
    b3.addActionListener(new B3L()); 
    cp.add(b3);
    b4.addActionListener(new B4L()); 
    cp.add(b4);
    cp.add(sp3);
    cp.add(sp4);
    cp.add(sp5);
    cp.add(sp6);
  }
public static void main(String[] args) { 
    Console.run(new JScrollPanes(), 300, 725); 
  }
} ///:~


通过向JScrollPane的构造器中传入不同的参数,可以控制哪些滚动条是可用的。本例还使

用边框进行了一些修饰。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值