Oi pessoal, boa tarde.
Há uma maneira simples de fazer com que o componente setado em setColumnHeaderView se posicione abaixo da ViewPortView?
Obrigado.
Oi pessoal, boa tarde.
Há uma maneira simples de fazer com que o componente setado em setColumnHeaderView se posicione abaixo da ViewPortView?
Obrigado.
olá
olha, simples acho que não tanto... você deve fazer uma classe filha de ScrollPaneLayout que posicione do jeito que você precisa aí, ou fazer uma autêntica gambi como essa que segue hehehe:
package teste;
import java.awt.Dimension;
import java.awt.Point;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class TesteScrollHeader extends JFrame {
private static final long serialVersionUID = 1L;
public TesteScrollHeader() {
super("TesteScrollHeader");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPane scroll = new JScrollPane();
JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
public void paint(java.awt.Graphics g) {
super.paint(g);
g.drawLine(0, 0, getWidth(), getHeight());
};
};
JLabel label = new JLabel("header");
panel.setPreferredSize(new Dimension(640, 480));
scroll.setPreferredSize(new Dimension(320, 240));
scroll.setViewportView(panel);
scroll.setColumnHeaderView(label);
getContentPane().add(scroll);
pack();
scroll.setLayout(null);
Point p1 = scroll.getViewport().getLocation();
Point p2 = scroll.getColumnHeader().getLocation();
Point p3 = scroll.getVerticalScrollBar().getLocation();
p1.y = p2.y;
p2.y = p1.y + scroll.getViewport().getHeight();
p3.y = p1.y;
scroll.getViewport().setLocation(p1);
scroll.getColumnHeader().setLocation(p2);
scroll.getVerticalScrollBar().setLocation(p3);
}
public static void main(String[] args) {
TesteScrollHeader teste = new TesteScrollHeader();
teste.setVisible(true);
}
}
espero que ajude... flw