Java >> Java tutorial >  >> Tag >> Swing

Sådan ændres udseende og følelse af swing-applikation

I denne tutorial skal vi se, hvordan du ændrer udseendet og følelsen af ​​swing-applikationen. Java Swing giver os mulighed for at tilpasse den grafiske grænseflade ved at ændre udseendet og fornemmelsen (L&F). Look definerer det generelle udseende af komponenterne, og Feel definerer deres adfærd. L&F'er er underklasser af LookAndFeel-klassen, og hver L&F er identificeret med sit fulde klassenavn. Som standard er L&F indstillet til 'Metal'.

For at indstille L&F kan vi kalde metoden setLookAndFeel() af UIManager-klassen. Kaldet til setLookAndFeel skal foretages, før en Java Swing-klasse instansieres, ellers vil standard Swing L&F blive indlæst.

Java-applikation til at ændre udseende og følelse af swing-applikation:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TestLF extends JFrame implements ActionListener 
{
   private JRadioButton w, ml, mf;
   private ButtonGroup groupBtn;
   
   public TestLF() 
   {
      setTitle("Change the look of my Swing app");
      w = new JRadioButton("Windows");
      w.addActionListener(this);
      ml = new JRadioButton("Metal");
      ml.addActionListener(this);
      mf = new JRadioButton("Motif");
      mf.addActionListener(this);
      groupBtn = new ButtonGroup();
      groupBtn.add(w);
      groupBtn.add(ml);
      groupBtn.add(mf);
      setLayout(new FlowLayout());
      add(w);
      add(ml);
      add(mf);
      setSize(250, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
      setLocationRelativeTo(null);
   }
   
   @Override
   public void actionPerformed(ActionEvent actionevent) 
   {
      String LookAndFeel;
      if(actionevent.getSource() == w)
         LookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
      else if(actionevent.getSource() == mf)   
         LookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
      else
         LookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
      try {
         UIManager.setLookAndFeel(LookAndFeel);
         SwingUtilities.updateComponentTreeUI(this);
      } catch (Exception e) {
         System.out.println("Error while defining the LookAndFeel..." + e);
      }
   }
   public static void main(String args[]) 
   {
      new TestLF();
   }
}

Output:


Java tag