ورود

View Full Version : سوال: استفاده از یک فونت خاص برای متن برچسب



ravand
سه شنبه 12 خرداد 1394, 12:11 عصر
سلام
من میخوام یک فونت خاصی رو مثلا فونت یکان رو برای برچسبم اعمال کنم. توی نت سرچ زدم سایت های انگلیسی نمونه اش بود ولی چون کدهاش کامل نبود و منم مبتدی ام درست متوجه نشدم.
متشکرم.

محمد فدوی
سه شنبه 12 خرداد 1394, 16:13 عصر
سلام. در مورد لود کردن یه فونت دو حالت وجود داره، اول حالتی که فونتی توی سیستم نصب شده و حالا شما می‌خوای توی برنامه لودش کنی و دوم حالتی که شما می‌خوای یه فونت رو از روی فایلش (معمولا ttf) لود کنی... توی مثال زیر هر دو حالت رو می‌بینید:
public static void main(String[] args) throws SQLException {
JFrame frame = new JFrame("Font Practice");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setLayout(new FlowLayout());

JLabel lbl1 = new JLabel("Label (1)");
JLabel lbl2 = new JLabel("Label (2)");

// Load installed font:
Font fnt1 = new Font("foo", Font.PLAIN, 10);
lbl1.setFont(fnt1);

// Load *.ttf file as font:
try(FileInputStream fis = new FileInputStream("/path/to/font/bar.ttf")) {
Font fnt2 = Font.createFont(Font.TRUETYPE_FONT, fis).deriveFont(Font.PLAIN, 10);
lbl2.setFont(fnt2);
} catch (IOException | FontFormatException ignore) { }

frame.add(lbl1);
frame.add(lbl2);

frame.pack();
frame.setVisible(true);
}
با یکم دقت به این کد همه‌چیز روشن می‌شه (فقط باید نام فونت در حالت اول و آدرس فایل فونت در حالت دوم رو خودتون ویرایش و وارد کنید)
موفق باشید.

ravand
سه شنبه 12 خرداد 1394, 17:05 عصر
از پاسختون متشکرم. وقتی این کار رو کردم سرعت اجرای برنامه ام خیلی امد پایین. میشه کاری کرد این اتفاق نیوفده؟ یا این مورد عادیه؟
متشکرم.

محمد فدوی
سه شنبه 12 خرداد 1394, 17:34 عصر
من چنین چیزی رو مشاهده نکردم. شاید توی حالتی که فایل ttf رو لود می‌کنیم یه مقداری راه‌اندازی I/O و لود کردن فونت طول بکشه...
اما وقتی فونتی رو لود می‌کنیم که روی سیستم نصبه نباید مشکلی وجود داشته باشه که اگرم وجود داشته باشه چاره‌ای نیست!

غیر از موارد فوق مهمترین فاکتور کدنویسی برنامه‌نویسه. شاید اگه کدتون رو بذارید بشه با اطمینان بیشتری نظر داد.