Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Aiuto con Finestra

  1. #1

    Aiuto con Finestra

    Devo costruire una finestra che deve avere questa struttura:

    1° CheckBox
    1° RadioButton / 2° RadioButton <-- spostate un pò verso destra perché si riferiscono alla 1°checkbox
    2° CheckBox
    3° CheckBox

    Etichetta: JTextField <-- al centro

    Vorrei postare il codice che ho fatto ma se uso il tag CODE viene messo tutto sulla stessa riga @_@

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Aiuto con Finestra

    Originariamente inviato da Javino89
    Devo costruire una finestra che deve avere questa struttura:

    1° CheckBox
    1° RadioButton / 2° RadioButton <-- spostate un pò verso destra perché si riferiscono alla 1°checkbox
    2° CheckBox
    3° CheckBox

    Etichetta: JTextField <-- al centro

    Vorrei postare il codice che ho fatto ma se uso il tag CODE viene messo tutto sulla stessa riga @_@
    Come puoi immaginare, spiegare a parole un layout non è facile .....

    Intendi una cosa come questo codice di esempio?

    codice:
    import java.awt.*;
    import javax.swing.*;
    
    public class TestFrame extends JFrame {
        public TestFrame() {
            super("Test Frame");
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            Container contentPane = getContentPane();
    
            contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    
            contentPane.add(new JCheckBox("C1"));
    
            JPanel p = new JPanel();
            p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
            p.setBorder(BorderFactory.createEmptyBorder(0, 30, 0, 0));
    
            p.add(new JRadioButton("R1"));
            p.add(new JRadioButton("R2"));
    
            contentPane.add(p);
            contentPane.add(new JCheckBox("C2"));
            contentPane.add(new JCheckBox("C3"));
    
            pack();
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new TestFrame().setVisible(true);
                }
            });
        }
    }
    Il:
    Etichetta: JTextField <-- al centro
    non l'ho ben capito.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di desa
    Registrato dal
    Oct 2008
    Messaggi
    569
    Ma i tag CODE si possono anche inserire a mano e poi fare copia/incolla no?
    Oppure - ancora più comodo - si può utilizzare l'apposito pulsante sulla barra di edit del post, inserire solo un "blank" nel popup, e poi fare copia/incolla del codice...

  4. #4

    Re: Aiuto con Finestra

    Mmm quasi, ti faccio vedere come deve essere senza le radiobutton. La parte relativa ai miei tentativi di inserimento
    delle radiobutton è commentata.

    Codice:

    codice:
    package Programma10;
    
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    
    @SuppressWarnings("serial")
    public class MyFrame extends JFrame implements ItemListener
    {
    	JCheckBox uno = new JCheckBox("Viaggio A/R");
    	JCheckBox due = new JCheckBox("Pernottamento per 7 notti");
    	JCheckBox tre = new JCheckBox("Gita a Versailles");
    	JLabel etichetta = new JLabel("Totale:");
    	JTextField testo = new JTextField(10);
    	JRadioButton scelta1 = new JRadioButton("Aereo");
    	JRadioButton scelta2 = new JRadioButton("Treno");
    	Component rigid = Box.createRigidArea(new Dimension(150,0));
    	private final int COSTOVIAGGIO = 300000;
    	private final int COSTONOTTI = 840000;
    	private final int COSTOGITA = 120000;
    	int totale;
    	
    	public MyFrame()
    	{
    		super("Finestra");
    		setSize(300,150);
    		testo.setEditable(false);
    		scelta1.setSelected(true);
    		//riferimento al container
    		Container c = getContentPane();
    		c.setLayout(new BorderLayout());
    		JPanel p1 = new JPanel();
    		JPanel p2 = new JPanel();
    		JPanel p3 = new JPanel();
    		ButtonGroup gruppo = new ButtonGroup();
    		gruppo.add(scelta1);
    		gruppo.add(scelta2);
    		p1.setLayout(new BoxLayout(p1, BoxLayout.Y_AXIS)); 
    		//p2.setLayout(new BoxLayout(p2, BoxLayout.X_AXIS)); //per i bottoni a scelta esclusiva
    		p3.setLayout(new FlowLayout());
    		//Component rigid = Box.createRigidArea(new Dimension(140,0));
    		//Aggiunta dei bottoni
    		p1.add(uno);
    		//p1.add(p2);
    		p1.add(due);
    		p1.add(tre);
    		p2.add(rigid);
    		p2.add(scelta1);
    		p2.add(scelta2);
    		p3.add(etichetta);
    		p3.add(testo);
    		c.add(p1, BorderLayout.NORTH);
    		c.add(p3, BorderLayout.SOUTH);
    		uno.addItemListener(this);
    		due.addItemListener(this);
    		tre.addItemListener(this);
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    	}
    	
    	public static void main(String[]args)
    	{
    		MyFrame finestra = new MyFrame();
    		finestra.setVisible(true);
    	}
    
    	public void itemStateChanged(ItemEvent i)
    	{
    		int cifra = 0;
    		Object o = i.getSource();
    		
    		if (o == uno) 
    		{
    			cifra = COSTOVIAGGIO;
    		}
    		else if (o == due) 
    		{
    			cifra = COSTONOTTI;
    		}
    		else if (o == tre)
    		{
    			cifra = COSTOGITA;
    		}
    		
    		int x = i.getStateChange();
    		
    		if (x == ItemEvent.SELECTED) 
    		{
    			totale += cifra;
    		}
    		else if (x == ItemEvent.DESELECTED) 
    		{
    			totale -= cifra;
    		}
    		testo.setText("" + totale);
    	}
    }
    Le radiobutton dovrebbero essere sotto la prima checkbox spostate un pò verso destra. Se provate a togliere i commenti, si ottengono le radiobutton attaccate a sinistra, e tutto il resto si centra.

  5. #5
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.