如何设置JViewport的insets

时间:2013-01-14 11:45:21

标签: java swing awt

我知道setViewportBorder(),但是我想知道你是否可以设置视口的边界而不仅仅是用空边框填充。我想要实现的是为页眉和页脚组件创建空间,与增加和减少按钮内联。

                  _
                 |^|
 ----------------| |
|                | |
|   JViewport    | |
|________________| |
                 |v|

1 个答案:

答案 0 :(得分:2)

你可以随时自己动手

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class Testing
{
  public void buildGUI()
  {
    JPanel p = new JPanel(new BorderLayout());
    JTextArea ta = new JTextArea(10,10);
    ta.setLineWrap(true);
    JScrollPane sp = new JScrollPane(ta,ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER,
                                      ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
    JLabel header = new JLabel("Header",JLabel.CENTER);
    JLabel footer = new JLabel("Footer",JLabel.CENTER);
    JScrollBar sBar = new JScrollBar();
    sp.getVerticalScrollBar().setModel(sBar.getModel());
    p.add(header,BorderLayout.NORTH);
    p.add(sp,BorderLayout.CENTER);
    p.add(footer,BorderLayout.SOUTH);

    for(int x = 0; x < 50; x++) ta.append(x+"\n");
    JFrame f = new JFrame();
    f.getContentPane().add(p);
    f.getContentPane().add(sBar,BorderLayout.EAST);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
  public static void main(String[] args)
  {
    SwingUtilities.invokeLater(new Runnable(){
      public void run(){
        new Testing().buildGUI();
      }
    });
  }
}