Логин:   Пароль:




Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100

Java: ПримерыДва шрифта в одной JLabel

Два шрифта в одной JLabel

Ниже приведен код, позволяющий реализовать два шрифта в одной метке JLabel. Это и сам класс метки и программа пример.


import javax.swing.*;
import java.awt.Graphics;
import javax.swing.plaf.basic.BasicLabelUI;
import javax.swing.plaf.basic.BasicGraphicsUtils;
 
class MultiFontLableUI extends BasicLabelUI {
 public static int BOLD_FIRST = 1;
 public static int BOLD_SECOND = 2;
 
 private char m_cDivide;
 private int m_nBold;
 
 public MultiFontLableUI(char cDivide, int nBold) {
  super();
  m_cDivide = cDivide;
  m_nBold = nBold;
 }
 
 protected void paintEnabledText(JLabel l,Graphics g,String s,
                                     int  textX,int textY) {
  int accChar = l.getDisplayedMnemonic();
  int nLen = s.length();
  int nPos = getPosition(s);
  for(int i=0; i < nLen; i++) {
   if(m_nBold==1) {
    if(i < nPos)
     g.setFont(new java.awt.Font("Dialog", 1, 12));
    else
     g.setFont(new java.awt.Font("Dialog", 0, 12));
   }
   else {
    if(i < nPos)
     g.setFont(new java.awt.Font("Dialog", 0, 12));
    else
     g.setFont(new java.awt.Font("Dialog", 1, 12));
   }
   BasicGraphicsUtils.drawString(g, String.valueOf(s.charAt(i)),  
                                       accChar, textX, textY);
   textX += g.getFontMetrics().charWidth(s.charAt(i));
  }
 }
 
 public int getPosition(String strLabel) {
  int i=0;
  int len = strLabel.length();
  if(len==0) return -1;
  while(i<len;) {
   if(strLabel.charAt(i)==m_cDivide) return ++i;
   i++;
  }
  return -1;
 }
}
 
class TestMultiFontLabel {
 
 public static void main(String [] args) {
  JFrame frm = new JFrame();
  JLabel lbl = new JLabel("Name : Some Name");
  lbl.setUI(new MultiFontLableUI(':',  MultiFontLableUI.BOLD_FIRST));
  frm.getContentPane().add(lbl);
  frm.setVisible(true);        
 }
}


Сергей Фельдман
"Система программирования JAVA без секретов. Как создать безопасное приложение с "нуля""
Подробнее>>
Заказать>>


Н. А. Вязовик
"Программирование на Java. Курс лекций"
Подробнее>>
Заказать>>

Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Apache Struts 2.0.11
Apache MyFaces Trinidad Core 1.2.3.
Sun переводит мобильные устройства с Java ME на Java SE
Хакерская атака!