Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA] Interfaccia grafica

    Salve a tutti!
    Ora i miei programmi li faccio in AWT...C'è qualcosa di meglio per creare finestre in java....O sentito parlare di un certo Swing (non so se si scrive cosi), è buono?
    Vorrei incominciare a buttarmi su cose nuove no come awt che è della preistoria!
    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao... oggi come oggi penso che il 99,99% delle GUi sviluppate in Java vengano fatte tramite Swing ( javax.swing ); esso parte dall'AWT ( infatti il vecchio Frame è indicato con JFrame, Panel con JPanel etc... ) ma offre più potenzialità ed è più performante dell'AWT; tra l'altro, cosa che mi sembra nell'AWT nno ci sia, ti da la possibilità di poter gestire il Look&Feel dell GUI... quindi secondo me faresti meglio ad iniziare a fare qualcosa in Swing.... anche se di base è molto simile all'AWT.. ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    sucsa la mia ignoranza...cosa sarebbe Look&Feel ?????
    Grazie cmq per il tuo aiuto..Sai dove trovare qualche guida sullo swing??

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Il look&Feel serve di base a cambiare aspetto al JFrame e non solo infatti prova questa classe ( costruita grazie anche all'aiuto di pireda ):
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class ProgressBarDemo extends JFrame {
    public final static int ONE_SECOND = 1000;

    private JProgressBar progressBar;
    private Timer timer;
    private JButton startButton;
    private LongTask task;
    private JTextArea taskOutput;
    private String newline = "\n";
    NomeClasse contentPane = new NomeClasse();

    public ProgressBarDemo() {
    super("ProgressBarDemo");
    task = new LongTask();

    //Create the demo's UI.
    startButton = new JButton("Start");
    startButton.setActionCommand("start");
    startButton.addActionListener(new ButtonListener());

    progressBar = new JProgressBar(0, task.getLengthOfTask());
    progressBar.setValue(0);
    progressBar.setStringPainted(true);

    taskOutput = new JTextArea(5, 20);
    taskOutput.setMargin(new Insets(5,5,5,5));
    taskOutput.setEditable(false);

    JPanel panel = new JPanel();
    panel.add(startButton);
    panel.add(progressBar);


    contentPane.setLayout(new BorderLayout());
    contentPane.add(panel, BorderLayout.NORTH);
    contentPane.add(new JScrollPane(taskOutput), BorderLayout.CENTER);
    contentPane.setBorder(BorderFactory.createEmptyBor der(20, 20, 20, 20));
    setContentPane(contentPane);

    //Create a timer.
    timer = new Timer(ONE_SECOND, new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    progressBar.setValue(task.getCurrent());
    taskOutput.append(task.getMessage() + newline);
    taskOutput.setCaretPosition(
    taskOutput.getDocument().getLength());
    if (task.done()) {
    Toolkit.getDefaultToolkit().beep();
    timer.stop();
    startButton.setEnabled(true);
    progressBar.setValue(progressBar.getMinimum());
    }
    }
    });
    }

    /**
    * The actionPerformed method in this class
    * is called when the user presses the start button.
    */
    class ButtonListener implements ActionListener {
    public void actionPerformed(ActionEvent evt) {
    startButton.setEnabled(false);
    task.go();
    timer.start();
    }
    }

    public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new ProgressBarDemo();
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });

    frame.pack();
    frame.setVisible(true);
    }
    }
    class NomeClasse extends JPanel
    {
    public NomeClasse()
    {

    //Setto l'ambientazione
    //String plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFee l";
    String plaf = "com.sun.java.swing.plaf.motif.MotifLookAndFee l";
    //String plaf = "javax.swing.plaf.metal.MetalLookAndFeel";
    try
    {
    UIManager.setLookAndFeel(plaf);
    SwingUtilities.updateComponentTreeUI(NomeClasse.th is);
    }
    catch(Exception e)
    {
    //non voglio messaggi d'eccezione
    }

    }
    }

    Con la scritta segnata in rosso si cambia l'aspetto a TUTTI i frame che saranno richiamati dal main, col pezzo di codice in blu, invece, si cambia l'aspetto al pannello contenuto nel frame.prova a cambiare il valore di plaf commentando e decommentando altre stringhe e vedrai..
    Per quanto riguarda un libro, io molto l'ho imparato dal sito della mokabyte
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

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 © 2024 vBulletin Solutions, Inc. All rights reserved.