2

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

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

1 回答 1

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();
      }
    });
  }
}
于 2013-01-14T18:47:36.187 回答