|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Registered User
Iscritto dal: Sep 2010
Messaggi: 1
|
[JAVA] Problema JScrollPane - Vertical ScrollBar
Ciao a tutti, sono nuovo del forum (anche se ogni tanto vi leggo
![]() ...Passo subito al problema. : -) Ho creato un semplice JScrollPane contenente una JTable e il suo relativo JTableHeader. Quando la finestra viene ridimensionata verticalmente la scrollbar appare sotto l'header della JTable lasciando in alto a destra una 'zona vuota' evidenziata in rosso e corrispondente al colore di background dello JScrollPane. Quello che invece vorrei riuscire a fare è affiancare orizzontalmente la vertical scrollbar all'header. Ho fatto due prove per riuscire a risolvere il problema: 1) Ho aggiunto semplicemente un pulsante disabilitato per coprire l'area vuota. Graficamente è migliore, ma è una soluzione stupida. ![]() 2) Usando 'BorderLayout.EAST' ho aggiunto la JScollBar ricavata dallo JScrollPane al JFrame. In questo modo sono riuscito ad affiancare la scrollbar all'header della JTable, ma cosi' risulta sempre visibile (indipendentemente dalla VerticalScrollBarPolicy dello JScrollPane) ![]() Qualcuno ha qualche altra 'alternativa' da proporre? ![]() Posto il codice: (PS: non fate caso al 'contenuto' della tabella : ) ...era solo per mettere qualcosa di 'carino'....) Codice:
import javax.swing.*; import java.awt.*; public class ScrollBarTest extends JFrame { private final static String rowData [][] = { { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }, { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }, { " ", " ", "[XI]", " ", " ", " ", " ", " ", "[XI]", " ", " " }, { "[XI]", " ", " ", "[XI]", " ", " ", " ", "[XI]", " ", " ", "[XI]" }, { "[XI]", " ", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", " ", "[XI]" }, { "[XI]", "[XI]", "[XI]", " ", "[XI]", "[XI]", "[XI]", " ", "[XI]", "[XI]", "[XI]" }, { "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]" }, { " ", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", "[XI]", " " }, { " ", " ", "[XI]", " ", " ", " ", " ", " ", "[XI]", " ", " " }, { " ", "[XI]", " ", " ", " ", " ", " ", " ", " ", "[XI]", " " }, { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }, { " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }, }; private final static String columnNames [] = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K" }; public ScrollBarTest () { // Table setup final JTable table = new JTable (rowData, columnNames); table.setBackground (Color.BLACK); table.setForeground (Color.WHITE); // ScrollPane setup final JScrollPane sp = new JScrollPane (table); sp.setBackground (Color.RED); sp.getViewport ().setBackground (new Color (0x1A2D39)); // JFrame setup getContentPane ().add (sp); setTitle ("ScrollBar Test"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); setSize (236, 280); setLocationRelativeTo (null); // Tentativo 1 /* final JButton btn = new JButton (); btn.setEnabled (false); sp.setCorner (ScrollPaneConstants.UPPER_RIGHT_CORNER, btn); */ // Tentativo 2 /* final JScrollBar sb = sp.getVerticalScrollBar (); getContentPane ().add (sb, BorderLayout.EAST); */ setVisible (true); } public static void main (String args []) { new ScrollBarTest (); } } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:42.