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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Without Swing html 
:(
    Опции темы
math64
Дата 3.4.2008, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вот: Кстати вместо Icon можно использовать Border, заглушки методов для этого в коде есть.
Код

import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.table.*;

public class Main extends DefaultTableCellRenderer implements Icon, Border {
  String green;
  String red;
  
  /** Creates a new instance of Main */
  public Main () {
    setIcon (this);
  }
  
  /**
   * @param args the command line arguments
   */
  public static void main (String[] args) {
    String[][] data = { {"A1-B1", "A1-B2"},{"A2-B1","A2-B2"}};
    String[] col = {"C1","C2"};
    JFrame frame = new JFrame("Test");
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    Main main = new Main();
    JTable table = new JTable(data, col);
    table.setDefaultRenderer (Object.class, main);
    frame.setContentPane (new JScrollPane(table));
    frame.pack ();
    frame.setVisible (true);
  }

  public void paintIcon (Component c, Graphics g, int x, int y) {
    g.setColor (getBackground ());
    g.fillRect (x,y, getIconWidth (), getIconHeight ());
    Font font = getFont ();
    g.setFont (font);
    FontMetrics fm = g.getFontMetrics (font);
    int ascent = fm.getMaxAscent ();
    g.setColor (Color.GREEN);
    g.drawString (green, x, y + ascent);
    g.setColor (Color.RED);
    g.drawString (red, x + getIconWidth () - (int)fm.getStringBounds (red,g).getWidth (), y + ascent);
  }

  public int getIconWidth () {
    return getWidth ();
  }

  public int getIconHeight () {
    return getHeight ();
  }

  public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
    String text = getText();
    green = text.substring (0, 2);
    red = text.substring (3);
    setText(null);
    //setBorder (this);
    return this;
  }

  public void paintBorder (Component c, Graphics g, int x, int y, int width, int height) {
  }

  public Insets getBorderInsets (Component c) {
    return new Insets(0,0,0,0);
  }

  public boolean isBorderOpaque () {
    return true;
  }
}

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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