0

最終的に自分の携帯電話に搭載するフォント チェンジャー アプリを作成することを計画しています。しかし、一部のフォントが機能しないため、現時点ではいくつかの問題があります。実際には私のコードかもしれないと思います。別のフォントチェンジャーコードを見て、それが完全に機能したため、何かが欠けている可能性があります。だから私が知りたいのは、なぜこれらのフォントの一部が機能しないのかということだけです. 私が呼び出すと思われる特定のメソッドはありますか? これについて調査したところ、インポート java.awt.Font; を使用する必要があることがわかりました。これにより、特定のフォントが機能します。カスタム フォントを追加することもできますが (これについては後で説明します)、すべてのフォントを PC で利用できるようにして、このアプリで動作させたいと考えています。

ここに私のコードがあります:

import java.awt.*;
import java.awt.Font.*;
import java.awt.event.*;
import java.applet.Applet;

public class FontChangerForAndroid extends Applet implements ActionListener
    {

    Button Change;
    Button TestOutput;
    Choice Fonts;
    TextField TestTxt;
    Label text;
    /***
     * Okay, this works so far. Not sure if the comic one isnt working. Or if I just spelled it wrong. I will have to
     * look it up in a java Font libaray.
     *
     * I basically want to make this a function on my entire phone. So i'll have to change it to an android app.
     * ( I hope it has the Rosemarry font)
     * While I'm practicing with this app, I'll add a text box that will let me change the label. Or enter the words
     * in the app.
     *
     */
    public void init(){

        setLayout(new FlowLayout());
        Fonts = new Choice();
        //Some fonts don't work because we I don't know what fonts are in the JGE. Working on how to find them
        //Will just add fonts to this system if possible.
        Fonts.addItem("Dialog");
        Fonts.addItem("Serif");
        Fonts.addItem("SansSerif");
        Fonts.addItem("Monospaced");
        Fonts.addItem("DialogInput");
        Fonts.addItem("Calist");
        Fonts.addItem("Centbi");

        add(Fonts);
        TestTxt = new TextField("Enter Text",15);
        add(TestTxt);
        TestOutput = new Button("Enter");
        add(TestOutput);
        Change = new Button("Change Font");
        add(Change);
        text = new Label("Real eye realize real lies");
        add(text);

        Change.addActionListener(this);
        TestOutput.addActionListener(this);
    }

   public void actionPerformed(ActionEvent evt) {
      String item = (String) Fonts.getSelectedItem(); 
      //Gets the selected option from the list and sets the text as the Font.
      if (evt.getSource() == Change){
        text.setFont(new Font(item, Font.PLAIN, 12));
      }
      //In this section you can enter something and print it out on the screen.
      if ( evt.getSource() == TestOutput){
         repaint();
       }
    }


    /**
     * I'm trying to figure out what code goes here in order for the font to change here also....5/22/13
     *
     */
    public void paint (Graphics g){
     //String item = Fonts.getSelectedItem();
    //g.setFont(TestTxt.setFont(new Font(item, Font.PLAIN, 12)));  
     g.drawString(TestTxt.getText(),20,100);

    }
}
4

1 に答える 1

1

GraphicsEnvironmentと呼ばれるメソッドがありregisterFontます。この回答に見られるEG 。

于 2013-05-30T19:14:23.483 に答える