Java by API/javax.swing/JScrollPane
Содержание
- 1 JScrollPane: getHorizontalScrollBar()
- 2 JScrollPane: getHorizontalScrollBarPolicy()
- 3 JScrollPane: getVerticalScrollBar()
- 4 JScrollPane: getVerticalScrollBarPolicy()
- 5 JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS
- 6 JScrollPane: setColumnHeaderView(Component view)
- 7 JScrollPane: setCorner(String key, Component corner)
- 8 JScrollPane: setRowHeaderView(Component com)
- 9 JScrollPane: setViewportView(Component view)
- 10 JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
- 11 new JScrollPane(Component view, int vsbPolicy, int hsbPolicy)
JScrollPane: getHorizontalScrollBar()
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.border.LineBorder;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame("Cornering Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("+");
JLabel bigLabel = new JLabel("A");
bigLabel.setPreferredSize(new Dimension(400,400));
bigLabel.setBorder(new LineBorder(Color.red));
JScrollPane scrollPane = new JScrollPane(bigLabel);
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, button);
scrollPane.setColumnHeaderView(new JLabel("B"));
scrollPane.setRowHeaderView(new JLabel("C"));
ActionListener actionListener = new JScrollPaneToTopAction(scrollPane);
button.addActionListener(actionListener);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
class JScrollPaneToTopAction implements ActionListener {
JScrollPane scrollPane;
public JScrollPaneToTopAction(JScrollPane scrollPane) {
if (scrollPane == null) {
throw new IllegalArgumentException("JScrollPaneToTopAction: null JScrollPane");
}
this.scrollPane = scrollPane;
}
public void actionPerformed(ActionEvent actionEvent) {
JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar();
JScrollBar horizontalScrollBar = scrollPane.getHorizontalScrollBar();
verticalScrollBar.setValue(verticalScrollBar.getMinimum());
horizontalScrollBar.setValue(horizontalScrollBar.getMinimum());
}
}
JScrollPane: getHorizontalScrollBarPolicy()
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Main {
public static void main(String[] argv) throws Exception {
JTextArea textArea = new JTextArea();
JScrollPane pane = new JScrollPane(textArea);
// Get the default scrollbar policy
int hpolicy = pane.getHorizontalScrollBarPolicy();
// JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED;
int vpolicy = pane.getVerticalScrollBarPolicy();
// JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED;
}
}
JScrollPane: getVerticalScrollBar()
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.border.LineBorder;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame("Cornering Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("+");
JLabel bigLabel = new JLabel("A");
bigLabel.setPreferredSize(new Dimension(400,400));
bigLabel.setBorder(new LineBorder(Color.red));
JScrollPane scrollPane = new JScrollPane(bigLabel);
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, button);
scrollPane.setColumnHeaderView(new JLabel("B"));
scrollPane.setRowHeaderView(new JLabel("C"));
ActionListener actionListener = new JScrollPaneToTopAction(scrollPane);
button.addActionListener(actionListener);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
class JScrollPaneToTopAction implements ActionListener {
JScrollPane scrollPane;
public JScrollPaneToTopAction(JScrollPane scrollPane) {
if (scrollPane == null) {
throw new IllegalArgumentException("JScrollPaneToTopAction: null JScrollPane");
}
this.scrollPane = scrollPane;
}
public void actionPerformed(ActionEvent actionEvent) {
JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar();
JScrollBar horizontalScrollBar = scrollPane.getHorizontalScrollBar();
verticalScrollBar.setValue(verticalScrollBar.getMinimum());
horizontalScrollBar.setValue(horizontalScrollBar.getMinimum());
}
}
JScrollPane: getVerticalScrollBarPolicy()
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Main {
public static void main(String[] argv) throws Exception {
JTextArea textArea = new JTextArea();
JScrollPane pane = new JScrollPane(textArea);
// Get the default scrollbar policy
int hpolicy = pane.getHorizontalScrollBarPolicy();
// JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED;
int vpolicy = pane.getVerticalScrollBarPolicy();
// JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED;
}
}
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Main {
public static void main(String[] argv) throws Exception {
JTextArea textArea = new JTextArea();
JScrollPane pane = new JScrollPane(textArea);
pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
}
}
JScrollPane: setColumnHeaderView(Component view)
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
public class MainClass {
public static void main(final String args[]) {
String labels[] = { "A", "B", "C", "D", "E" };
JFrame frame = new JFrame("Selection Modes");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JList list1 = new JList(labels);
JScrollPane sp1 = new JScrollPane(list1);
sp1.setColumnHeaderView(new JLabel("List"));
frame.add(sp1, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
JScrollPane: setCorner(String key, Component corner)
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
public class Main {
public static void main(String args[]) {
JFrame frame = new JFrame("Cornering Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Icon acrossLogo = new ImageIcon("logo-across.jpg");
Icon downLogo = new ImageIcon("logo-down.jpg");
Icon bookCover = new ImageIcon("puzzlebook.jpg");
JLabel columnLabel = new JLabel(acrossLogo);
JLabel rowLabel = new JLabel(downLogo);
JLabel coverLabel = new JLabel(bookCover);
JButton button = new JButton("+");
button.setFont(new Font("Monospaced", Font.PLAIN, 8));
JScrollPane scrollPane = new JScrollPane(coverLabel);
scrollPane.setCorner(JScrollPane.UPPER_LEFT_CORNER, button);
scrollPane.setColumnHeaderView(columnLabel);
scrollPane.setRowHeaderView(rowLabel);
ActionListener actionListener = new JScrollPaneToTopAction(scrollPane);
button.addActionListener(actionListener);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
class JScrollPaneToTopAction implements ActionListener {
JScrollPane scrollPane;
public JScrollPaneToTopAction(JScrollPane scrollPane) {
if (scrollPane == null) {
throw new IllegalArgumentException(
"JScrollPaneToTopAction: null JScrollPane");
}
this.scrollPane = scrollPane;
}
public void actionPerformed(ActionEvent actionEvent) {
JScrollBar verticalScrollBar = scrollPane.getVerticalScrollBar();
JScrollBar horizontalScrollBar = scrollPane.getHorizontalScrollBar();
verticalScrollBar.setValue(verticalScrollBar.getMinimum());
horizontalScrollBar.setValue(horizontalScrollBar.getMinimum());
}
}
JScrollPane: setRowHeaderView(Component com)
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
public class MainClass {
public static void main(final String args[]) {
final Object rows[][] = { { "one", "1" }, { "two", "2" },
{ "three", "3" } };
final Object headers[] = { "English", "Digit" };
JFrame frame = new JFrame("Scrollless Table");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTable table = new JTable(rows,headers);
JScrollPane scrollPane = new JScrollPane(table);
JViewport viewport = new JViewport();
viewport.setView(table);
scrollPane.setColumnHeaderView( new JLabel("table header here"));
scrollPane.setRowHeaderView(viewport);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 150);
frame.setVisible(true);
}
}
JScrollPane: setViewportView(Component view)
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame("");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel dogLabel = new JLabel("www.jexp.ru");
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(dogLabel);
// scrollPane.getViewport().setView(dogLabel);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Main {
public static void main(String[] argv) throws Exception {
JTextArea textArea = new JTextArea();
JScrollPane pane = new JScrollPane(textArea);
pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
}
}
new JScrollPane(Component view, int vsbPolicy, int hsbPolicy)
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
public class MainClass extends JPanel {
public MainClass() {
setLayout(new BorderLayout());
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(20, 20));
int b = 0;
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
jp.add(new JButton("Button " + b));
++b;
}
}
// Add panel to a scroll pane.
int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
JScrollPane jsp = new JScrollPane(jp, v, h);
// Add scroll pane to the content pane.
add(jsp, BorderLayout.CENTER);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new MainClass());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}
}