Ik hoop dat jullie me kunnen helpen. Ik ben op zoek naar een scrollbar voorbeeld in JAVA.
Dus ik heb een panel en daarin wil ik een scrollbar hebben.
Ik weet wel:
new Scrollbar(Scrollbar.VERTICAL, 0, 50, 0, 50)
Maar hiermee creeër ik alleen een scrollbar. Wat moet ik doen om de scrollbar correct te laten werken, dus dat ik daadwerkelijk in het panel naar beneden kan scrollen, zodat de inhoud verschuift.
Ik heb geen voorbeeld kunnen vinden via Google. Misschien iemand anders wel :)
public class ScrollBarDemo extends JFrame
implements AdjustmentListener {
// Create horizontal and vertical scroll bars
private JScrollBar jscbHort =
new JScrollBar(JScrollBar.HORIZONTAL);
private JScrollBar jscbVert =
new JScrollBar(JScrollBar.VERTICAL);
// Create a MessagePanel
private MessagePanel messagePanel =
new MessagePanel("Welcome to Java");
public static void main(String[] args) {
ScrollBarDemo frame = new ScrollBarDemo();
frame.setTitle("ScrollBarDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public ScrollBarDemo() {
// Add scroll bars and message panel to the frame
getContentPane().setLayout(new BorderLayout());
getContentPane().add(messagePanel, BorderLayout.CENTER);
getContentPane().add(jscbVert, BorderLayout.EAST);
getContentPane().add(jscbHort, BorderLayout.SOUTH);
// Register listener for the scroll bars
jscbHort.addAdjustmentListener(this);
jscbVert.addAdjustmentListener(this);
}
/** Handle scroll bar adjustment actions */
public void adjustmentValueChanged(AdjustmentEvent e) {
if (e.getSource() == jscbHort) {
// getValue() and getMaximumValue() return int, but for better
// precision, use double
double value = jscbHort.getValue();
double maximumValue = jscbHort.getMaximum();
double newX = (value * messagePanel.getWidth() / maximumValue);
messagePanel.setXCoordinate((int)newX);
}
else if (e.getSource() == jscbVert) {
// getValue() and getMaximumValue() return int, but for better
// precision, use double
double value = jscbVert.getValue();
double maximumValue = jscbVert.getMaximum();
double newY = (value * messagePanel.getHeight() / maximumValue);
messagePanel.setYCoordinate((int)newY);
}
}
}
Dit staat in mijn grootte JAVA boek :D
Maar bij mij geeft hij een error... En ben nog niet zover met JAVA dat ik die kan oplossen. (Lijn 14+15 'MessagePanel')