Avviso: vi è stato un importante aggiornamento della piattaforma forum, si prega di visionare la discussione in merito: viewtopic.php?f=17&t=637551.

Java splitpane con scrollpane

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi riposta
Avatar utente
Dr_Berta
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1859
Iscrizione: domenica 31 luglio 2011, 12:37
Desktop: Gnome fb + Cairo dock
Distribuzione: Ubuntu 18.04 x86_64 LTS
Località: Carpi (MO)

Java splitpane con scrollpane

Messaggio da Dr_Berta » sabato 6 luglio 2019, 16:55

Ciao,
sto cercando di fare con Eclipse un piccolo programma in java.
Ho creato, usando una splitpane, due zone: a sinistra ho un albero dove inserisco delle informazioni; a destra per ogni dato vorrei creare una lista di 7 pannelli con lo scroll uno per ogni giorno della settimana in cui scrivere delle note.
Ho creato una classe per implementare il pannello giornaliero per le note.

Avete suggerimenti su come inserire nella parte destra una scrollpane con i pannelli giornalieri? La tecnica che ho utilizzato non funziona
Ecco il codice:

Codice: Seleziona tutto

/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmAgenda = new JFrame();
		frmAgenda.getContentPane().setFont(new Font("Dialog", Font.PLAIN, 10));
		frmAgenda.setTitle("AGENDA");
		frmAgenda.setBounds(100, 100, 650, 650);
		frmAgenda.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frmAgenda.getContentPane().setLayout(new BorderLayout(0, 0));
		
		JMenuBar menuBar = new JMenuBar();
		frmAgenda.getContentPane().add(menuBar, BorderLayout.NORTH);
		
		mnNew = new JMenu("New");
		menuBar.add(mnNew);
		
		mntmNewProgram = new JMenuItem("New Info");
		mnNew.add(mntmNewProgram);
		
		mnAdd = new JMenu("Add");
		menuBar.add(mnAdd);
		
		mntmAddWeek = new JMenuItem("Add Week");
		mnAdd.add(mntmAddWeek);

		JSplitPane splitPane = new JSplitPane();
		frmAgenda.getContentPane().add(splitPane, BorderLayout.CENTER);
		root = new DefaultMutableTreeNode("AGENDA");
		tree = new JTree(root);
		top = new DefaultMutableTreeNode("Info");
		root.add(top);
		DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
		model.reload(root); // notify changes to model 
		tree.expandPath(tree.getSelectionPath());
		splitPane.setLeftComponent(tree);
		
// Qui iniziano i problemi
		JScrollPane sp = new JScrollPane();
		panel = new JPanel();
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
		panel.setBackground(Color.ORANGE);
		panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
		
		int i=0;
		while(i<8) {
			day = i+1;
			panel.add(new GroupPanel(i));
			i++;
		}
		sp.add(panel);
        splitPane.setRightComponent(sp);
        
        Dimension minimumSize = new Dimension(0, 0);
        tree.setMinimumSize(minimumSize);
        panel.setMinimumSize(minimumSize);
	
		ButtonAction ba = new ButtonAction();
		mntmNewProgram.addActionListener(ba);
		mntmAddWeek.addActionListener(ba);
		tree.addTreeSelectionListener(createSelectionListener());
	}
	
	@SuppressWarnings("serial")
	public class GroupPanel extends JPanel {
		private int index;
		public GroupPanel(int i) {
			this.index = i;
			this.setBackground(Color.ORANGE);
			this.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
	        
	        Box verticalBox_d1 = Box.createVerticalBox();
			
			Box verticalBox_4 = Box.createVerticalBox();
			verticalBox_d1.add(verticalBox_4);
			
			Box horizontalBox_2 = Box.createHorizontalBox();
			horizontalBox_2.setBackground(Color.ORANGE);
			verticalBox_4.add(horizontalBox_2);
			
			lblNewLabel_3 = new JLabel("Info");
			lblNewLabel_3.setBackground(Color.ORANGE);
			horizontalBox_2.add(lblNewLabel_3);
			
			Box horizontalBox = Box.createHorizontalBox();
			verticalBox_4.add(horizontalBox);
			
			Box verticalBox = Box.createVerticalBox();
			horizontalBox.add(verticalBox);
			
			JLabel lblNewLabel = new JLabel("Nota 1");
			lblNewLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
			lblNewLabel.setHorizontalAlignment(SwingConstants.LEFT);
			verticalBox.add(lblNewLabel);
			
			textField = new JTextField();
			textField.setFont(new Font("Dialog", Font.PLAIN, 10));
			textField.setAlignmentY(Component.TOP_ALIGNMENT);
			textField.setHorizontalAlignment(SwingConstants.LEFT);
			verticalBox.add(textField);
			textField.setColumns(15);
			
			Box verticalBox_1 = Box.createVerticalBox();
			horizontalBox.add(verticalBox_1);
			
			JLabel lblNewLabel_1 = new JLabel("Nota 2");
			lblNewLabel_1.setAlignmentX(Component.CENTER_ALIGNMENT);
			lblNewLabel_1.setHorizontalAlignment(SwingConstants.LEFT);
			verticalBox_1.add(lblNewLabel_1);
			
			textField_1 = new JTextField();
			textField_1.setFont(new Font("Dialog", Font.PLAIN, 10));
			textField_1.setAlignmentY(Component.TOP_ALIGNMENT);
			textField_1.setHorizontalAlignment(SwingConstants.LEFT);
			verticalBox_1.add(textField_1);
			textField_1.setColumns(15);
			
			Box verticalBox_2 = Box.createVerticalBox();
			horizontalBox.add(verticalBox_2);
			
			JLabel lblNewLabel_2 = new JLabel("Nota 3");
			lblNewLabel_2.setAlignmentX(Component.CENTER_ALIGNMENT);
			verticalBox_2.add(lblNewLabel_2);
			
			textField_2 = new JTextField();
			textField_2.setFont(new Font("Dialog", Font.PLAIN, 10));
			textField_2.setAlignmentY(Component.TOP_ALIGNMENT);
			verticalBox_2.add(textField_2);
			textField_2.setColumns(15);
			
			Box horizontalBox_3 = Box.createHorizontalBox();
			horizontalBox_3.setAlignmentY(Component.BOTTOM_ALIGNMENT);
			verticalBox_4.add(horizontalBox_3);
			
			Box verticalBox_5 = Box.createVerticalBox();
			verticalBox_5.setAlignmentX(Component.CENTER_ALIGNMENT);
			verticalBox_5.setAlignmentY(Component.BOTTOM_ALIGNMENT);
			horizontalBox_3.add(verticalBox_5);
			
			JLabel lblNewLabel_4 = new JLabel("Nota 4:");
			lblNewLabel_4.setVerticalAlignment(SwingConstants.BOTTOM);
			lblNewLabel_4.setHorizontalAlignment(SwingConstants.LEFT);
			lblNewLabel_4.setAlignmentY(Component.BOTTOM_ALIGNMENT);
			verticalBox_5.add(lblNewLabel_4);
			
			textField_3 = new JTextField();
			textField_3.setHorizontalAlignment(SwingConstants.CENTER);
			textField_3.setAlignmentX(Component.LEFT_ALIGNMENT);
			textField_3.setFont(new Font("Dialog", Font.PLAIN, 10));
			textField_3.setAlignmentY(Component.BOTTOM_ALIGNMENT);
			verticalBox_5.add(textField_3);
			textField_3.setColumns(10);
			
			Box verticalBox_3 = Box.createVerticalBox();
			verticalBox_d1.add(verticalBox_3);
			verticalBox_3.setBackground(Color.ORANGE);
			
			Box horizontalBox_1 = Box.createHorizontalBox();
			verticalBox_3.add(horizontalBox_1);
			
			JLabel lblData = new JLabel("Data: ");
			lblData.setAlignmentX(Component.CENTER_ALIGNMENT);
			horizontalBox_1.add(lblData);
			
			txtGgmmaaaa = new JTextField();
			horizontalBox_1.add(txtGgmmaaaa);
			txtGgmmaaaa.setText("gg/mm/aaaa");
			txtGgmmaaaa.setColumns(10);
			
			add(verticalBox_d1);       
	    }
	}
Il codice sopra mi crea la splitpane, conle due zone a sinistra e a destra, ma a destra arriva solo fino a un pannello dentro alla scrollpane.
Non mi inserisce nel pannello gli 8 pannelli creati con la classe GroupPanel(i)
Dov'è che sbaglio?

Claudio
Ubuntu user #35116. Linux user #550996 - Il cervello è come un paracadute, funziona solo se si apre [Einstein]

Scrivi riposta

Torna a

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti and 2 ospiti