は、私はNetbeansのからの私のJava Swingのアプリを実行したときにフォントが異なって見える気づいたと私は私のCからjarファイルとしてそれを実行すると:私は瓶のアプリで使用されるフォントを言われたシステム上でJava Swingアプリケーションで使用されているフォントを見つけるにはどうすればいいですか?
のWindows 7上のドライブから来ますシステムでは、Netbeansから実行したときにフォントと違って見えるので、IDEとユーザーの視点からアプリケーションの外観を一貫して保つために、Netbeansからアプリケーションに読み込まれているフォントを見つけて、私のjarアプリの一環としてそれらをパッケージ化すると、これは実現可能ですか?もし私がそれらを私のアプリにコピーしたら、私のアプリの中にそれらをロードする方法は?ここで
は、コードや画像です:
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class Test_JPanel extends JPanel
{
public static final long serialVersionUID=26362862L;
static Dimension Screen_Size=Toolkit.getDefaultToolkit().getScreenSize();
Thread Empty_JPanel_Thread;
public Test_JPanel()
{
setPreferredSize(new Dimension(300,600));
String Table="<Html>\n"+
" <Center><Br>\n"
+"Test Table<P>\n"
+" <Table Border=0 Cellpadding=1 Cellspacing=1 Width=286>\n"
+" <Tr><Td Width=118 Align=Right>[ 1] </Td><Td>111 - AAA</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 2] </Td><Td>222 - BBB</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 3] </Td><Td>333 - CCC</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 4] </Td><Td>444 - DDD</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 5] </Td><Td>555 - EEE</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 6] </Td><Td>666 - FFF</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 7] </Td><Td>777 - GGG</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 8] </Td><Td>888 - HHH</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[ 9] </Td><Td>999 - III</Td><Td></Td></Tr>\n"
+" <Tr><Td Width=118 Align=Right>[10] </Td><Td>000 - JJJ</Td><Td></Td></Tr>\n"
+" </Table>\n"
+" </Center>\n"
+"<Hr Width=100%>\n"
+"</Html>";
JLabel aLabel=new JLabel(Table);
aLabel.setFont(new Font("Dialog",0,18));
aLabel.setOpaque(true);
aLabel.setPreferredSize(new Dimension(285,413));
add(aLabel);
}
static void Create_And_Show_GUI()
{
final Test_JPanel demo=new Test_JPanel();
JFrame frame=new JFrame("Test_JPanel");
frame.add(demo);
frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Create_And_Show_GUI(); } }); }
}
* "私は、Jarsアプリケーションで使用されるフォントはシステムから来ていると言われていたので、Netbeansから実行するとフォントと異なって見える" *私の知る限り、***すべての*** Javaフォントがロードされていますローカルシステムから。 2つの表現の間にある可能性が最も高いのは、異なるフォントを選択するPLAF、またはフォントをレンダリングするさまざまな方法(アンチエイリアスなど)です。もっと早く助けを求めるには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。さて、基本的なデバッグでどのようなフォントを発見しましたか?フォントフェイス情報を表示するコードをMCVEに追加します。 –
Javaランタイム(JRE)は、[Lucidaフォントの3つのファミリのいずれかを含む](http://docs.oracle.com/javase/8/docs/technotes/guides/intl/font.html)に加えて、ホストOSに属するフォント。 –
なぜ気になるのですか?レイアウトマネージャと論理フォントファミリを使用してください。[here](http://stackoverflow.com/a/7189029/230513) – trashgod