Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JMenuItem, Шрифт текста 
V
    Опции темы
Neox_GeForce
Дата 17.10.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 14.11.2007
Где: Украина

Репутация: нет
Всего: нет



Есть некоторая проблемка. Нужно организовать пункты меню разными шрифтами. Как это сделать?


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
Neox_GeForce
Дата 17.10.2009, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 14.11.2007
Где: Украина

Репутация: нет
Всего: нет



Я уже догадался как.

Код

JFrame jfrm=new JFrame("A simple  Swing Application");
 
 JMenuBar jMenuBar=new JMenuBar();
 
jfrm.add(jMenuBar,BorderLayout.PAGE_START);

 JMenu fonts=new JMenu("Fonts");

         Font fTimesNewRoman_10=new Font("Times New Roman",Font.PLAIN,10);
         Font fTimesNewRoman_12=new Font("Times New Roman",Font.PLAIN,12);
         Font fTimesNewRoman_14=new Font("Times New Roman",Font.PLAIN,14);
         Font fSansSerif_14=new Font("SansSerif",Font.BOLD,14);

        JMenuItem fonts1=new JMenuItem(fTimesNewRoman_10.getFontName()+" "+fTimesNewRoman_10.getSize()+"pt");
        JMenuItem fonts2=new JMenuItem(fTimesNewRoman_12.getFontName()+" "+fTimesNewRoman_10.getSize()+"pt");
        JMenuItem fonts3=new JMenuItem(fTimesNewRoman_14.getFontName()+" "+fTimesNewRoman_10.getSize()+"pt");
        JMenuItem fonts4=new JMenuItem(fSansSerif_14.getFontName()+" "+fSansSerif_14.getSize()+"pt");
      
         fonts1.setFont(fTimesNewRoman_10);
         fonts2.setFont(fTimesNewRoman_12);
         fonts3.setFont(fTimesNewRoman_14);
         fonts4.setFont(fSansSerif_14);

        JMenuItem exitClose=new JMenuItem("Exit");
        JMenuItem helpAbout=new JMenuItem("About");
        JMenuItem helpRegister=new JMenuItem("Register");
        JMenuItem helpContents=new JMenuItem("Contents");

          fonts.add(fonts1);
          fonts.add(fonts2);
          fonts.add(fonts3);
          fonts.add(fonts4);

                 jMenuBar.add(fonts);




Можно ли как-то упростить это.
PM MAIL ICQ   Вверх
dorogoyIV
Дата 18.10.2009, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 36
Всего: 46



Цитата(Neox_GeForce @  17.10.2009,  23:57 Найти цитируемый пост)
Можно ли как-то упростить это.

 smile 
Код

import java.awt.*;
import javax.swing.*;

public class TestFonts extends JFrame
{
 public TestFonts()
 {
  setJMenuBar(new MyMenu());
 }

 public static void main(String [] args)
 {
  JFrame f = new TestFonts();
  f.setBounds(100, 100, 400, 300);
  f.setDefaultCloseOperation(3);
  f.setVisible(true);
 }
}

class MyMenu extends JMenuBar
{
 MyMenu()
 {
  JMenu file = new JMenu("File");

  for(int i = 0; i < 20; i+= 2)
  {
   MyItem item = new MyItem(i + 10 + "", i + 10);
   file.add(item);
  }

  add(file);
 }
}

class MyItem extends JMenuItem
{
 MyItem(String text, int fontsize)
 {
  setText(text);
  setFont(new Font("Times New Roman", Font.PLAIN, fontsize));
 }
}

PM MAIL   Вверх
Neox_GeForce
Дата 18.10.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 14.11.2007
Где: Украина

Репутация: нет
Всего: нет



Я придумал так, написал метод createMenuItem который создает новый пункт меню с заданым шрифом.
Код

public class Main {

      public static JMenuItem createMenuItem(String fontName, int size){
      Font font=new Font(fontName,Font.PLAIN,size);
      JMenuItem item=new JMenuItem(font.getFontName()+" "+font.getSize()+"pt");
      item.setFont(font);
      return item;
    }
    Main(){
        JFrame jfrm=new JFrame("A simple  Swing Application");
         jfrm.setLayout(new java.awt.BorderLayout() );
        jfrm.setSize(275,100);
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel jlb=new JLabel("test");
        jfrm.add(jlb);
        jfrm.setVisible(true);
         JMenuBar jMenuBar=new JMenuBar();
        jfrm.add(jMenuBar,BorderLayout.PAGE_START);

        JMenu fonts=new JMenu("Fonts");
        JMenu help=new JMenu("Help");
        JMenu exit=new JMenu("Exit");


        
        JMenuItem exitClose=new JMenuItem("Exit");
        JMenuItem helpAbout=new JMenuItem("About");
        JMenuItem helpRegister=new JMenuItem("Register");
        JMenuItem helpContents=new JMenuItem("Contents");

        JMenuItem monotypeCorsiva,timesNewRoman,sansSerif, calibri;

        monotypeCorsiva=createMenuItem("Monotype Corsiva",18)  ;
        timesNewRoman=createMenuItem("Times New Roman",20) ;
        sansSerif=createMenuItem("SansSerif",50);
        calibri=createMenuItem("Calibri",18);

          fonts.add(monotypeCorsiva);
          fonts.add(timesNewRoman);
          fonts.add(sansSerif);
          fonts.add(calibri);
        
          exit.add(exitClose);
          help.add(helpAbout);
          help.add(helpRegister);
          help.add(helpContents);

        jMenuBar.add(fonts);
        jMenuBar.add(exit);
        jMenuBar.add(help);

      }


Хочу спросить, какие шаблоны используються при конструировании гуя.

Это сообщение отредактировал(а) Neox_GeForce - 18.10.2009, 10:47


--------------------
user posted image
Челябинские программисты настолько суровы, что обходятся без компиляторов.
Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0582 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.