Desidero un JPanel con una dimensione e una posizione definita. All'interno di JPanel, ho un certo numero di elementi (pulsanti) inseriti orizzontalmente. Poiché il mio JPanel ha una larghezza definita, se aggiungo molti pulsanti, non potrei vederlo. In questo caso, ho bisogno di una barra di scorrimento per questo JPanel. Ma questo JPanel deve essere una DIVERSA MISURA IN UNA CERTA POSIZIONE all'interno di una JFrame. La barra di scorrimento dello JPanel si è posizionata sotto di esso orizzontalmente. Qualcuno può aiutarmi? L'ho provato senza successo!Scorrimento di un JPanel
risposta
Utilizzare un JScrollPane e imporre la sua dimensione preferita alla dimensione specificata (oppure impostare il contenitore di scorrimento LayoutManager su null e chiamare setBounds() sullo scrollpan). Imposta anche i criteri della barra di scorrimento. Ecco un piccolo campione di che:
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Test {
public static void main(String... args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
for (int i = 0; i < 10; i++) {
panel.add(new JButton("Hello-" + i));
}
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setBounds(50, 30, 300, 50);
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500, 400));
contentPane.add(scrollPane);
frame.setContentPane(contentPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
}
Emm, il problema è che ho bisogno di localizzare JPanel in una posizione specifica di JFrame. Inoltre, deve avere una dimensione definita. – Chu
@BrallanAguilar o si utilizza un LayoutManager per posizionare e dimensionare i componenti, impostare il LayoutManager su null e chiamare setBounds() per posizionare e dimensionare il componente. In questo caso, devi farlo sul JScrollPane –
Puoi aiutarmi con un esempio, per favore? – Chu
Aggiungi tutti i pulsanti al pannello. Quindi aggiungi questo pannello a scrollpane.
panel.add(button1);
panel.add(button2);
panel.add(button3);
.
.
.
panel.add(buttonn);
Una volta aggiunti i pulsanti nel pannello, aggiungi il pannello allo schermo.
JScrollPane panelPane = new JScrollPane(panel);
E quindi aggiungere questo pannello alla cornice.
Ecco alcune soluzioni possibili:
o
- per lo scorrimento alla decisione
Point
oRectangle
lì esiste il metodoscrollRectToVisible
, ad es.myPanel.scrollRectToVisible(myButton.getBounds());
- 1. Come sostituire JPanel con un altro JPanel
- 2. JFrame rimozione di JPanel e aggiunta di un nuovo JPanel
- 3. JPanel all'interno di un altro
- 4. addMouseListener per un JPanel
- 5. Disegno di un SimpleWeightedGraph su un JPanel
- 6. Java JPanel all'interno di JScrollPane?
- 7. Rendere ridimensionabile manualmente un JPanel
- 8. Ottenere focus su un JPanel
- 9. Aggiungi un JFreeChart a JPanel
- 10. Perché collegare meglio un JPanel?
- 11. Problema di riverniciatura JPanel
- 12. Centratura di una JLabel su un JPanel
- 13. Java - Ottieni un'immagine di un JPanel
- 14. Utilizzo di due JPanel in un JFrame
- 15. Ridipingere un JPanel all'interno di una cornice
- 16. Centratura di una JLabel in un JPanel
- 17. Aggiunta di JPan aggiuntivi a un JPanel
- 18. JPanel Ombra
- 19. JPanel trasparenti
- 20. JPanel scorrevole
- 21. Incorporamento di VLCJ in JPanel
- 22. Perché il mio JPanel all'interno di un JScrollPane non scorre?
- 23. Visualizza un'immagine jpg su un JPanel
- 24. Java Swing - Come disabilitare un JPanel?
- 25. Aggiungi actionlistener a jpanel
- 26. loop through JPanel
- 27. Instantiate JDialog da JPanel
- 28. Aggiunta JPanel JFrame a
- 29. Disegno rettangolo su JPanel
- 30. Aggiungi ButtonGroup a JPanel
per quanto ne so, il punto è poiché il vostro 'JPanel' ha uno' Definito larghezza/altezza/size', quindi una volta che aggiungere qualcosa ad esso, che va oltre la sua dimensione, non si può vedere che cosa, anche con ' JScrollPane' aggiunto ad esso, poiché anche 'JScrollPane' non può andare oltre la dimensione di' JPanel', quindi quei componenti sono nascosti sempre :(. Dal momento che se non si definisce la sua dimensione, i componenti vengono prima aggiunti al 'JPanel' e quindi 'preferredSize()' è determinato implicitamente da 'doLayout()' specie di cose, quindi il tuo 'JScrollPane' funziona in quella situazione, ma non qui. –
Considera anche [' JToolBar'] (http://docs.oracle .com/javase/tutorial/uiswing/components/toolbar.html) o [layout adatto] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). Senza uno [sscce] (http://sscce.org/) che chiarisce il significato di _certain size_ and _certain position_, questa domanda non può essere risolta nella sua forma attuale. – trashgod