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






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


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

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

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

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

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




Rambler's Top100
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);        
 }
}

Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 11

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/books/show2b.php on line 19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/books/show2b.php on line 30
Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 91

Warning: mysql_db_query() [function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_db_query() [function.mysql-db-query]: A link to the server could not be established in /pub/home/javaport/javaportal/news/worldnews.php on line 93

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /pub/home/javaport/javaportal/news/worldnews.php on line 95