怎么在Java中利用Swing定制TextField功能

本篇文章为大家展示了怎么在Java中利用Swing定制TextField功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

专注于为中小企业提供成都做网站、网站建设、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业贺州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

具体代码如下:

package themedemo;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.RenderingHints;
import java.util.Map;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Painter;
import javax.swing.SwingUtilities;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
public class TextFieldSkinDemo {
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        for (UIManager.LookAndFeelInfo laf : UIManager
            .getInstalledLookAndFeels()) {
          if ("Nimbus".equals(laf.getName())) {
            try {
              UIManager.setLookAndFeel(laf.getClassName());
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        }
        for (Map.Entry entry : UIManager
            .getLookAndFeelDefaults().entrySet()) {
          if ((entry.getKey().toString()).startsWith("TextField")) {
            System.out.println(entry.getKey() + " = "
                + entry.getValue());
          }
        }
        JFrame frame = new JFrame("www.jb51.net - TextField Skining Demo");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new BorderLayout());
        JPanel panel = new JPanel(new GridLayout(0, 1, 20, 20));
        panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
        panel.setBackground(Color.darkGray);
        UIDefaults textFieldDefaults = new UIDefaults();
        textFieldDefaults.put("TextField.contentMargins", new Insets(6,
            6, 6, 6));
        textFieldDefaults.put("TextField[Selected].textForeground",
            Color.WHITE);
        textFieldDefaults.put("TextField.backgroundPainter",
            new Painter() {
              public void paint(Graphics2D g, JComponent c,
                  int w, int h) {
                g.setRenderingHint(
                    RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
                g.setStroke(new BasicStroke(2f));
                g.setColor(Color.WHITE);
                g.fillRoundRect(0, 0, w - 2, h - 2, 8, 8);
              }
            });
        textFieldDefaults.put("TextField.borderPainter",
            new Painter() {
              public void paint(Graphics2D g, JComponent c,
                  int w, int h) {
                g.setRenderingHint(
                    RenderingHints.KEY_ANTIALIASING,
                    RenderingHints.VALUE_ANTIALIAS_ON);
                g.setStroke(new BasicStroke(2f));
                g.setColor(Color.LIGHT_GRAY);
                g.drawRoundRect(0, 0, w - 2, h - 2, 8, 8);
              }
            });
        JTextField textField = new JTextField(15);
        panel.add(textField);
        textField.putClientProperty("Nimbus.Overrides",
            textFieldDefaults);
        textField.putClientProperty("Nimbus.Overrides.InheritDefaults",
            false);
        // Add a normal themed slider for comparison
        JTextField normalTextField = new JTextField(15);
        panel.add(normalTextField);
        frame.getContentPane().add(panel, BorderLayout.CENTER);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
      }
    });
  }
}

上述内容就是怎么在Java中利用Swing定制TextField功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享名称:怎么在Java中利用Swing定制TextField功能
当前网址:http://pwwzsj.com/article/gccehc.html