Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJComboBox内にさまざまなフォントアイテムを表示するにはどうすればよいですか?


JComboBox JComponentのサブクラスです クラスであり、テキストフィールドの組み合わせです。 およびドロップダウンリスト ユーザーはそこから値を選択できます。 JComboBox ActionListener、ChangeListenerを生成できます 、および ItemListener ユーザーがコンボボックスでアクションを実行するときのインターフェイス。 JComboBox内にさまざまなフォントスタイルを表示できます ListCellRendererを実装する インターフェイス

import java.awt.*;
import javax.swing.*;
public class JComboBoxFontTest extends JFrame {
   private JComboBox fontComboBox;
   private String fontName[];
   private Integer array[];
   public JComboBoxFontTest() {
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
      fontName = ge.getAvailableFontFamilyNames();
      array = new Integer[fontName.length];
      for(int i=1;i<=fontName.length;i++) {
         array[i-1] = i;
      }
      fontComboBox = new JComboBox(array);
      ComboBoxRenderar renderar = new ComboBoxRenderar();
      fontComboBox.setRenderer(renderar);
      setLayout(new FlowLayout());
      add(fontComboBox);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   private class ComboBoxRenderar extends JLabel implements ListCellRenderer {
      @Override
      public Component getListCellRendererComponent(JList list, Object value, int index, boolean           isSelected, boolean cellHasFocus) {
         int offset = ((Integer)value).intValue() - 1;
         String name = fontName[offset];
         setText(name);
         setFont(new Font(name,Font.PLAIN,20));
         return this;
      }
   }
   public static void main(String args[]) {
      new JComboBoxFontTest();
   }
}

出力

JavaでJComboBox内にさまざまなフォントアイテムを表示するにはどうすればよいですか?


  1. JavaでBorderFactoryを使用してさまざまな境界線を実装するにはどうすればよいですか?

    BorderFactory ファクトリです Javaでさまざまなタイプの境界線を提供するクラス。 境界線の種類 BevelBorder :この境界線は隆起を描画します または下げた 斜角のエッジ。 EmptyBorder :描画は行いませんが、スペースを取ります。 EtchedBorder :下がったエッチングボーダー 長方形と隆起したエッチングされた境界線の外観を与えます 画面の表面のように見えます。 LineBorder :コンポーネントの周りに単純な長方形を描画します。 LineBorderで線の色と幅を指定できます コンストラクター。 Matte

  2. JavaでJTextField内の文字数を制限するにはどうすればよいですか?

    JTextFeld は、ユーザーが単一行形式でテキスト値を入力できるようにする最も重要なコンポーネントの1つです。 ユーザーがJTextFieldに入力できる文字数を制限できます PlainDocumentを使用して実現できます クラス。 以下の例では、 PlainDocumentを使用してロジックを実装できます。 クラスであるため、ユーザーは最大10文字を入力できますが、10文字を超える場合は入力できません。 例 import java.awt.*; import javax.swing.*; import javax.swing.text.*; class JTextFieldLi