问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java中 look and feel如何使用?求详细解释,求资源

发布网友 发布时间:2022-05-16 01:58

我来回答

4个回答

热心网友 时间:2023-10-08 22:57

public static void main(String[] args) {
   try {
       //设置UI为当前系统的UI
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
   } catch (ClassNotFoundException e) {
       e.printStackTrace();
   } catch (InstantiationException e) {
       e.printStackTrace();
   } catch (IllegalAccessException e) {
       e.printStackTrace();
   } catch (UnsupportedLookAndFeelException e) {
       e.printStackTrace();
  }
  //new AssetLogin().validate();
}


//LookAndFeelFrame.java


import java.awt.GridLayout;

import java.awt.BorderLayout;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;

public class LookAndFeelFrame extends JFrame{
/**
* 可插入外观
*/
   private static final long serialVersionUID = 1L;
   private UIManager.LookAndFeelInfo[] looks;
   private String[] lookNames;
   private JRadioButton[] radio;
   private ButtonGroup group;
   private JLabel label;
   private JButton button;
   private JComboBox comboBox;

   public LookAndFeelFrame(){
       super("Look and Feel Demo");
       //获得系统中可用外观
       looks=UIManager.getInstalledLookAndFeels();
       lookNames=new String[looks.length];
       for(int i=0;i<looks.length;i++){
            lookNames[i]=looks[i].getName();
   }

   JPanel northPanel=new JPanel();
   northPanel.setLayout(new GridLayout(3,1,0,5));

   label=new JLabel("This is a"+lookNames[0]+" look-and-feel",SwingConstants.CENTER);
   northPanel.add(label);

    button=new JButton("JButton");
    northPanel.add(button);

    comboBox=new JComboBox(lookNames);
    northPanel.add(comboBox);

    radio=new JRadioButton[looks.length];
    JPanel southPanel=new JPanel();
    int rows=(int)Math.ceil(radio.length/3.0);
    southPanel.setLayout(new GridLayout(rows,3));

    group=new ButtonGroup();
    ItemHandler handler=new ItemHandler();
    for(int count=0;count<radio.length;count++){
          radio[count]=new JRadioButton(lookNames[count]);
          radio[count].addItemListener(handler);
          group.add(radio[count]);
          southPanel.add(radio[count]);
   }


   comboBox.addItemListener(
         new ItemListener(){
              public void itemStateChanged(ItemEvent event){
                      if(event.getStateChange()==ItemEvent.SELECTED){
                               label.setText(String.format("This is a %s look-and-                             feel",lookNames[comboBox.getSelectedIndex()]));
                              changeTheLookAndFeel(comboBox.getSelectedIndex());
                              radio[comboBox.getSelectedIndex()].setSelected(true);
                    }
              }
     });
      button.addActionListener(
             new ActionListener()
             {
                         public void actionPerformed(ActionEvent event){
                        JOptionPane.showMessageDialog(LookAndFeelFrame.this, "How are you?\n");
                       }
               });

             add(northPanel,BorderLayout.NORTH);
           add(southPanel,BorderLayout.SOUTH);

       radio[0].setSelected(true);
}

private void changeTheLookAndFeel(int value){
    try{
     UIManager.setLookAndFeel(looks[value].getClassName());
    //通过当前外观初始化其 UI 属性
   SwingUtilities.updateComponentTreeUI(this);
   }
  catch(Exception exception){
    exception.printStackTrace();
  }
}

private class ItemHandler implements ItemListener{
              public void itemStateChanged(ItemEvent event){
                           for(int count=0;count<radio.length;count++){
                                if(radio[count].isSelected()){
                                     label.setText(String.format("This is a %s look-and-feel",lookNames[count]));
                                     comboBox.setSelectedIndex(count);
                                     changeTheLookAndFeel(count);
}

}

}
}
}

//LookAndFeelDemo.java

import javax.swing.JFrame;

public class LookAndFeelDemo {


/**

* @param args

*/

    public static void main(String[] args) {

        // TODO Auto-generated method stub

         LookAndFeelFrame lookAndFeelFrame=new LookAndFeelFrame();

         lookAndFeelFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

         lookAndFeelFrame.setSize(400,200);

         lookAndFeelFrame.setVisible(true);

    }


}



//Java金属风格


//Nimbus


//CDE/Motif


//windows


//Windows Classic

热心网友 时间:2023-10-08 22:58

程序中添加代码“UIManager.setLookAndFeel(lookAndFeel);”即可,
下载的话,网上一搜一大把。
JDK自带的有如下几个:
1、Metal风格 (默认)
String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
2、Windows风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
3、Windows Classic风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
4、Motif风格
String lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
5、Mac风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.mac.MacLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
6、GTK风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);
7、可跨平台的默认风格
String lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);
8、当前系统的风格
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);

热心网友 时间:2023-10-08 22:58

使用jdk自带的nimbus,感觉很好了,很方便
外挂的话 苹果界面也不错 substance 也可以

热心网友 时间:2023-10-08 22:59

http://hi.baidu.com/epdc147/item/625efbd23c354bc6795daac5
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 铆工是什么工作 x3470跟同频的x3440性能一样吗 Intel的x3440和x5570比哪个好? 园丁是什么职业呢?? 佰卓办公家具工作面试待遇 钣金工是干吗的 成立建筑分公司需要什么条件 股份制公司设立分公司需要什么手续? 农民工有哪几种方式可以参加养老保险 DNF武器锻造失败会碎吗???? 还有史诗武器是不是强化到【+10】之前是不会碎的??? 农民参加居民养老保险 农民享受职工养老保险 地下城里锻造武器会碎吗?要是碎的话,从锻几开始? DNF屠戮锻造武器会碎吗? 每锻造一次需要多少个气息, 前几段会百分之百成功 DNF装备锻造有没有损坏的风险 农村农民工如何参加养老保险? DNF .史诗锻造会不会碎装备??? 农民买哪种养老保险 DNF武器锻造会碎吗,还有我武器强12了 临沂那里可以买到行书练字帖 java如何使用外部lookandfeel 关于java的lookandfeel的问题 java lookandfeel 哪个最好 认真看了下回复,至强X3440和i5 760 到底哪个强不超频 更换Java 皮肤外观 Look AndFeel java 中setDefaultLookAndFeelDecorated是什么方法 如何设置Java桌面程序界面外观(How to Set the Look and Feel) Java Swing问题:JFrame.setDefaultLookAndFeelDecorated(true); String plaf = &quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&quot;;什么意思 String plaf = &quot;com.sun.java.swing.plaf.windows.WindowsLookAndFeel&quot;;是什么意思 纯java能开发出像迅雷7这样的界面吗?能的话用什么方法? UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 这是什么意思啊!求高手赐教? 关于java中swing 皮肤包的外界导入 怎么鉴别YY的真假 Java中Swing的窗体怎么弄才好看 如何制作YY频道的高清LOGO 水 行书的写法 丝瓜藤是什么东西啊? Java中实现播放声音 YY这个标志是什么意思