premetto che sono un novellino, sto iniziando a sviluppare con interfaccia grafica solo da poco tempo, e sono decisamente convinto di voler capire il FlowLayout, con questa occasione vado nella documentazione ufficiale, e per acquisire più familiarità col codice decido di scaricare la demo. Quello che vi chiedo in questo momento, è quello di spiegarmi gentilmente alcune righe di cui non riesco a comprendere l'utilizzo, riporto qua sotto il codice per comodità:
ho contrassegnato con 3 slash (///) tutto ciò che non ho capito. Vorrei anche capire come mai tratta come frame l'oggetto "FlowLayoutFrame" anzichè creare un oggetto JFrame.codice:package layout; /* * * FlowLayoutDemo.java * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class FlowLayoutDemo extends JFrame{ JRadioButton RtoLbutton; JRadioButton LtoRbutton; FlowLayout experimentLayout = new FlowLayout(); final String RtoL = "Right to left"; final String LtoR = "Left to right"; JButton applyButton = new JButton("Apply component orientation"); public FlowLayoutDemo(String name) { super(name); /// } public void addComponentsToPane(final Container pane) { final JPanel compsToExperiment = new JPanel(); compsToExperiment.setLayout(experimentLayout); experimentLayout.setAlignment(FlowLayout.TRAILING); JPanel controls = new JPanel(); controls.setLayout(new FlowLayout()); LtoRbutton = new JRadioButton(LtoR); LtoRbutton.setActionCommand(LtoR); LtoRbutton.setSelected(true); RtoLbutton = new JRadioButton(RtoL); RtoLbutton.setActionCommand(RtoL); //Add buttons to the experiment layout compsToExperiment.add(new JButton("Button 1")); compsToExperiment.add(new JButton("Button 2")); compsToExperiment.add(new JButton("Button 3")); compsToExperiment.add(new JButton("Long-Named Button 4")); compsToExperiment.add(new JButton("5")); //Left to right component orientation is selected by default compsToExperiment.setComponentOrientation( ComponentOrientation.LEFT_TO_RIGHT); //Add controls to set up the component orientation in the experiment layout final ButtonGroup group = new ButtonGroup(); group.add(LtoRbutton); group.add(RtoLbutton); controls.add(LtoRbutton); controls.add(RtoLbutton); controls.add(applyButton); //Process the Apply component orientation button press applyButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String command = group.getSelection().getActionCommand(); //Check the selection if (command.equals("Left to right")) { compsToExperiment.setComponentOrientation( ComponentOrientation.LEFT_TO_RIGHT); } else { compsToExperiment.setComponentOrientation( ComponentOrientation.RIGHT_TO_LEFT); } //update the experiment layout compsToExperiment.validate(); /// compsToExperiment.repaint(); /// } }); pane.add(compsToExperiment, BorderLayout.CENTER); pane.add(controls, BorderLayout.SOUTH); ; } /** * Create the GUI and show it. For thread safety, * this method should be invoked from the * event dispatch thread. */ private static void createAndShowGUI() { //Create and set up the window. FlowLayoutDemo frame = new FlowLayoutDemo("FlowLayoutDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Set up the content pane. frame.addComponentsToPane(frame.getContentPane()); //Display the window. frame.pack(); /// frame.setVisible(true); } public static void main(String[] args) { /* Use an appropriate Look and Feel */ try { //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch (UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } catch (IllegalAccessException ex) { ex.printStackTrace(); } catch (InstantiationException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } /* Turn off metal's use of bold fonts */ UIManager.put("swing.boldMetal", Boolean.FALSE); /// //Schedule a job for the event dispatchi thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { /// public void run() { createAndShowGUI(); } }); } }
Spero di non chiedere troppo. Grazie.


Rispondi quotando

però bhè, se mi dite che sto chiedendo troppo cambia strada.