Boa tarde.
Estou desenvolvendo um aplicativo java swing que vai rodar em um monitor touch screen , ele carrega os dados em um jpanel onde tem uma jscrollpane,
até aqui tudo bem , mais a resolução do monitor é grande e a barra do scrollpane é pequena , então vou criar dois jbutton rolagem para baixo rolagem para cima.
então tenho que colocar os codigos neste botões para fazer a jscrollpane rolar.
Alguém saberia como
Ricardo, não sei se entendi direito, vc quer tipo um botão Subir e outro Descer com esses dados é isso?
Exemplo(último post do tópico):
Você pode deixar as scroll bars do scroll pane maiores. Rode o exemplo abaixo:
package guj;
import java.awt.BorderLayout;
public class ExemploJScrollPaneJScrollBarCustomizado extends JFrame {
private JPanel contentPane;
private JScrollPane scrollPane;
private JPanel panel;
private JSlider slider;
private JTextArea textArea;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ExemploJScrollPaneJScrollBarCustomizado frame = new ExemploJScrollPaneJScrollBarCustomizado();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ExemploJScrollPaneJScrollBarCustomizado() {
setTitle("JScrollPane com JScrollBar customizado");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
contentPane.add(getScrollPane(), BorderLayout.CENTER);
contentPane.add(getPanel(), BorderLayout.SOUTH);
}
private JScrollPane getScrollPane() {
if (scrollPane == null) {
scrollPane = new JScrollPane();
scrollPane.setViewportView(getTextArea());
}
return scrollPane;
}
private JPanel getPanel() {
if (panel == null) {
panel = new JPanel();
panel.add(getSlider());
}
return panel;
}
private JSlider getSlider() {
if (slider == null) {
slider = new JSlider();
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
Dimension hsb = scrollPane.getHorizontalScrollBar().getPreferredSize();
hsb.height = slider.getValue();
scrollPane.getHorizontalScrollBar().setPreferredSize(hsb);
Dimension vsb = scrollPane.getVerticalScrollBar().getPreferredSize();
vsb.width = slider.getValue();
scrollPane.getVerticalScrollBar().setPreferredSize(vsb);
scrollPane.updateUI();
}
});
slider.setMinorTickSpacing(1);
slider.setMajorTickSpacing(5);
slider.setValue(5);
slider.setPaintTicks(true);
slider.setMaximum(50);
slider.setMinimum(5);
}
return slider;
}
private JTextArea getTextArea() {
if (textArea == null) {
textArea = new JTextArea();
StringBuilder largeText = new StringBuilder();
for (int i = 0; i < 80; ++i) {
for (int j = 32; j < 128; ++j) {
largeText.append((char) j);
}
largeText.append("\r\n");
}
textArea.setText(largeText.toString());
}
return textArea;
}
}
Só para ver como pode ficar um pouco grotesco, vou dar o exemplo para 5 pontos e para 50 pontos.
Muito obrigado era isso que eu precisava ,sendo assim com um monitor grande o usuário vai rolar com o dedo entre o intens.