AWT/Swing Java : ScrollPane Java Swing
Maybe your like
Navigation
Discussion : ScrollPane java swing Sujet :


Inscrivez-vous gratuitementpour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter
- Vous n'êtes pas encore inscrit sur Developpez.com ? Inscrivez-vous gratuitement !
- Recherche avancée

- Forum
- Java
- Interfaces Graphiques en Java
- AWT/Swing
- ScrollPane java swing
Discussion : ScrollPane java swing Sujet : AWT/Swing Java
- Outils de la discussion
- Afficher une version imprimable
- S'abonner à cette discussion…
- Affichage
- Mode linéaire
- Choisir le mode hybride
- Choisir le mode arborescent
- 15/07/2019, 15h03 #1 Medzfall
Membre habitué 



Développeur JavaInscrit enAvril 2019Messages9
Détails du profil
Informations personnelles :Sexe :
Localisation : France, Paris (Île de France)Informations professionnelles :Activité : Développeur JavaSecteur : High Tech - Matériel informatiqueInformations forums :Inscription : Avril 2019Messages : 9
ScrollPane java swing Bonjour, je veux créer une interface avec un scrollPane mais je n'arrive pas à faire fonctionner le scrollpane, j'ai besoin de votre aide. Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 import java.awt.Dimension; import java.awt.EventQueue; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.BorderLayout; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; public class TestScroll { private JFrame frame; private JTextField textField; private JTextField textField_1; private JTextField textField_2; private JTextField textField_3; private JTextField textField_4; private JTextField textField_5; private JTextField textField_6; private JTextField textField_7; private JTextField textField_8; private JTextField textField_9; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { TestScroll window = new TestScroll(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public TestScroll() { initialize(); } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 1327, 748); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); frame.getContentPane().add(panel, BorderLayout.CENTER); panel.setLayout(null); JTextArea textArea = new JTextArea(); textArea.setBounds(403, 100, 746, 536); panel.add(textArea); JButton btnNewButton = new JButton("New button"); btnNewButton.setBounds(800, 760, 119, 20); panel.add(btnNewButton); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(15, 235, 413, -225); panel.add(scrollPane); JLabel lblChamp = new JLabel("champ1"); lblChamp.setBounds(15, 16, 69, 20); panel.add(lblChamp); JLabel lblChamp_1 = new JLabel("champ2"); lblChamp_1.setBounds(15, 72, 69, 20); panel.add(lblChamp_1); textField = new JTextField(); textField.setBounds(103, 13, 146, 26); panel.add(textField); textField.setColumns(10); textField_1 = new JTextField(); textField_1.setBounds(99, 69, 146, 26); panel.add(textField_1); textField_1.setColumns(10); JLabel lblChamp_2 = new JLabel("champ3"); lblChamp_2.setBounds(15, 128, 69, 20); panel.add(lblChamp_2); textField_2 = new JTextField(); textField_2.setBounds(103, 125, 146, 26); panel.add(textField_2); textField_2.setColumns(10); JLabel lblChamp_3 = new JLabel("champ5"); lblChamp_3.setBounds(15, 188, 69, 20); panel.add(lblChamp_3); textField_3 = new JTextField(); textField_3.setBounds(103, 185, 146, 26); panel.add(textField_3); textField_3.setColumns(10); JLabel lblChamp_4 = new JLabel("champ6"); lblChamp_4.setBounds(15, 257, 69, 20); panel.add(lblChamp_4); textField_4 = new JTextField(); textField_4.setBounds(103, 254, 146, 26); panel.add(textField_4); textField_4.setColumns(10); JLabel lblChamp_5 = new JLabel("champ7"); lblChamp_5.setBounds(15, 315, 69, 20); panel.add(lblChamp_5); textField_5 = new JTextField(); textField_5.setBounds(103, 312, 146, 26); panel.add(textField_5); textField_5.setColumns(10); JLabel lblChamp_6 = new JLabel("champ8"); lblChamp_6.setBounds(15, 387, 69, 20); panel.add(lblChamp_6); textField_6 = new JTextField(); textField_6.setBounds(103, 384, 146, 26); panel.add(textField_6); textField_6.setColumns(10); JLabel lblChamp_7 = new JLabel("champ9"); lblChamp_7.setBounds(15, 452, 69, 20); panel.add(lblChamp_7); textField_7 = new JTextField(); textField_7.setBounds(103, 449, 146, 26); panel.add(textField_7); textField_7.setColumns(10); JLabel lblChamp_8 = new JLabel("champ10"); lblChamp_8.setBounds(15, 536, 69, 20); panel.add(lblChamp_8); textField_8 = new JTextField(); textField_8.setBounds(103, 533, 146, 26); panel.add(textField_8); textField_8.setColumns(10); JLabel lblChamp_9 = new JLabel("champ11"); lblChamp_9.setBounds(15, 612, 69, 20); panel.add(lblChamp_9); textField_9 = new JTextField(); textField_9.setBounds(103, 609, 146, 26); panel.add(textField_9); textField_9.setColumns(10); JLabel lblChamp_11 = new JLabel("champ11"); lblChamp_11.setBounds(15, 736, 69, 20); panel.add(lblChamp_11); JTextField textField_11 = new JTextField(); textField_11.setBounds(103, 736, 146, 26); panel.add(textField_11); textField_11.setColumns(11); JLabel lblChamp_12 = new JLabel("champ12"); lblChamp_12.setBounds(15, 800, 69, 20); panel.add(lblChamp_12); JTextField textField_12 = new JTextField(); textField_12.setBounds(103, 800, 146, 26); panel.add(textField_12); JLabel lblChamp_13 = new JLabel("champ13"); lblChamp_13.setBounds(15, 1162, 69, 20); panel.add(lblChamp_13); JTextField textField_13 = new JTextField(); textField_13.setBounds(103, 1162, 146, 26); panel.add(textField_13); textField_13.setColumns(13); JLabel lblChamp_14 = new JLabel("champ13"); lblChamp_14.setBounds(15, 1362, 69, 20); panel.add(lblChamp_14); JTextField textField_14 = new JTextField(); textField_14.setBounds(103, 1362, 146, 26); panel.add(textField_14); textField_13.setColumns(14); } }
Répondre avec citation 0 0 - 14/10/2019, 00h02 #2 abdennour bouaicha
Membre actif 






Développeur JavaInscrit enAvril 2009Messages98
Détails du profil
Informations personnelles :Sexe :
Localisation : MarocInformations professionnelles :Activité : Développeur JavaInformations forums :Inscription : Avril 2009Messages : 98
salut, pour que le scroll fonctionne on doit utiliser la gridlayout, de plus il ne faut pas mettre l'objet srcollpane dans le panel qui contient les éléments du programme (JTextField,JButton,...) mais plutôt le panel doit être un élément du scrollpane,j'ai fait un petit bricole à ton code et j’espère répondre à ton problème
: Code : Sélectionner tout - Visualiser dans une fenêtre à part 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 import java.awt.Color; import java.awt.GridLayout; import java.awt.Point; import java.awt.Rectangle; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class TestScroll { private JFrame fr = new JFrame( "test scroll" ); private JPanel panel = new JPanel(); private JPanel panTab = new JPanel(); private Rectangle r = new Rectangle( 0, 0, 1000, 1000 ); private Color c = Color.BLUE; private Point p; private JPanel panel_1 = new JPanel(); private JTextField textField; private JTextField textField_1; private JTextField textField_2; private JTextField textField_3; private JTextField textField_4; private JTextField textField_5; private JTextField textField_6; private JTextField textField_7; private JTextField textField_8; private JTextField textField_9; public TestScroll() { fr.getContentPane().setBackground( Color.BLUE ); fr.setBackground( c ); fr.setDefaultCloseOperation( fr.EXIT_ON_CLOSE ); fr.setSize( 1000, 1000 ); fr.setVisible( true ); fr.getContentPane().setLayout( null ); fr.setLocationRelativeTo( null ); panel.setBounds( new Rectangle( 0, 0, 1000, 1000 ) ); panel.setBackground( c ); panel.setBorder( null ); panel.setLayout( null ); fr.getContentPane().add( panel ); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds( 10, 11, 380, 220 ); panel.add( scrollPane ); scrollPane.setViewportView( panel_1 ); panel_1.setLayout( new GridLayout( 10, 1, 30, 50 ) ); JTextArea textArea = new JTextArea(); textArea.setBounds( 428, 11, 373, 234 ); panel.add( textArea ); JButton btnNewButton = new JButton( "New button" ); btnNewButton.setBounds( 491, 293, 122, 23 ); panel.add( btnNewButton ); field( textField ); field( textField_1 ); field( textField_2 ); field( textField_3 ); field( textField_4 ); field( textField_5 ); field( textField_6 ); field( textField_7 ); field( textField_8 ); field( textField_9 ); panel.repaint(); panel.revalidate(); } public void field( JTextField t ) { t = new JTextField(); t.setColumns( 30 ); panel_1.add( t ); } public static void main( String[] args ) { new TestScroll(); } }
Répondre avec citation 0 0 - 14/10/2019, 00h53 #3 joel.drigo
Modérateur 






Ingénieur R&D - Développeur JavaInscrit enSeptembre 2009Messages12 430
Détails du profil
Informations personnelles :Sexe :
Âge : 56Localisation : France, Paris (Île de France)Informations professionnelles :Activité : Ingénieur R&D - Développeur JavaSecteur : High Tech - Éditeur de logicielsInformations forums :Inscription : Septembre 2009Messages : 12 430Billets dans le blog2
Salut. On n'est pas obligé d'utiliser un GridLayout, il faut juste utiliser un LayoutManager, sinon c'est compliqué pour que le JScrollPane connaisse la taille du viewport. Au lieu de jpanel.setLayout(null); il suffit de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Il faut effectivement que le JScrollpane ne soit pas un composant du JPanel, mais il ne faut pas non plus que le JPanel soit composant du JScrollPane (ajouté par add()), mais viewport : donc au lieu de1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 panel.setLayout(new LayoutManager2() { private List<Component> components = new ArrayList<>(); private Dimension size=new Dimension(); @Override public void removeLayoutComponent(Component comp) { components.remove(comp); computeSize(); } @Override public Dimension preferredLayoutSize(Container parent) { return size; } @Override public Dimension minimumLayoutSize(Container parent) { return size; } @Override public void layoutContainer(Container parent) { computeSize(); } @Override public void addLayoutComponent(String name, Component comp) { components.add(comp); computeSize(); } private void computeSize() { Rectangle rectangle = new Rectangle(); for(Component component : components) { rectangle = rectangle.union(component.getBounds()); } size = rectangle.getSize(); System.out.println(size); } @Override public void addLayoutComponent(Component comp, Object constraints) { components.add(comp); } @Override public Dimension maximumLayoutSize(Container target) { return size; } @Override public float getLayoutAlignmentX(Container target) { return 0; } @Override public float getLayoutAlignmentY(Container target) { return 0; } @Override public void invalidateLayout(Container target) { computeSize(); } }); Code : Sélectionner tout - Visualiser dans une fenêtre à part 1234 JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(15, 235, 413, -225); panel.add(scrollPane); Code : Sélectionner tout - Visualiser dans une fenêtre à part
Il faut enlever aussi (ce n'est pas absolument indispensable, mais c'est plus propre) :12345 JScrollPane scrollPane = new JScrollPane(panel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); //scrollPane.setBounds(15, 235, 413, -225); frame.getContentPane().add(scrollPane, BorderLayout.CENTER); //panel.add(scrollPane);
frame.getContentPane().add(panel, BorderLayout.CENTER);Code : Sélectionner tout - Visualiser dans une fenêtre à part L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Répondre avec citation 0 0
| Actualités | FAQs Java | Tutoriels Java | Livres Java | Sources Java | Outils, EDI & API Java | JavaSearch |

- Forum
- Java
- Interfaces Graphiques en Java
- AWT/Swing
- ScrollPane java swing
Discussions similaires
- [Java Swing]JButton avec TableModel Par dim_italia dans le forum AWT/Swing Réponses: 5 Dernier message: 20/02/2006, 22h04
- [debutant]import java.swing? Par arou dans le forum Eclipse Java Réponses: 2 Dernier message: 09/02/2006, 13h13
- Séminaire Java Swing en vidéo Par Olivier Delmotte dans le forum Evolutions du club Réponses: 3 Dernier message: 16/01/2006, 13h33
- Application lourde en Java, Swing ou autre... Par eponette dans le forum AWT/Swing Réponses: 12 Dernier message: 23/09/2005, 23h17
- [Java-Swing][HTML] Page html à inclure dans application Java Par terminagroo dans le forum AWT/Swing Réponses: 4 Dernier message: 04/07/2005, 11h04
Partager
Partager
Tag » Add Element Jscrollpane
-
How Can You Add Several Elements To A JScrollPane - Stack Overflow
-
Add Component To JScrollPane - Java Tutorial
-
Javax.swing.d Java Code Examples - Tabnine
-
How To Use Scroll Panes - Oracle Help Center
-
JScrollPane (Java Platform SE 8 ) - Oracle Help Center
-
JList And JScrollPane In Java - C# Corner
-
Java – How To You Add Several Elements To A JScrollPane - ITecNote
-
How To Add JList To Scroll Pane In Java? - Tutorialspoint
-
Jscrollpane Code Example
-
Java JScrollPane - Javatpoint
-
Update JScrollPane With Contents Of JPanel - CodeRanch
-
Scrollbar Customization In Magento 2 Using JScrollPane Plugin
-
Tìm Hiểu JScrollPane Trong Java Swing - Deft Blog
-
Java Swing | ScrollPaneLayout Class - GeeksforGeeks
-
JList - Part 3 - The Guidebook - Swing Tutorials
-
Java JFrame, Add JPanels To JScrollPane Issue - DaniWeb
-
JScrollPane - Cross Browser Styleable Scrollbars With JQuery And CSS
-
Create A ScrollPane Using JScrollPane Class In Java GUI Swing