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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текст на JButton поверх картинки! 
V
    Опции темы
TWoVKP
Дата 4.7.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть кнопка JButton, поверх которой размещена картинка, как сделать чтобы поверх картинки можно было поместить текст!
Пробовал вот так:

Код

JButton jb = new JButton("MyText");
jb.setIcon(new ImageIcon("MyIcon.jpg"));


Пробовал всё сразу вместе, вот так:
Код

ImageIcon image = new ImageIcon("MyIcon.jpg");
JButton jb = new JButton("MyText",image);


Пробовал ещё такой вариант:
Код

JButton jb = new JButton(new ImageIcon("MyIcon.jpg"));
jb.setText("MyText");


Результат во всех трёх случаях такой, есть картинка, но не видно текста!
Проверял текст таки образом:
Код

System.out.println(jb.getText());


Выдаёт: MyText, ну то есть текст который на кнопке!

Может кто знает как можно такое реализовать???
Подскажите, а то как то ну никак не могу въехать как это можно сделать!!!
 smile  smile  smile 
PM MAIL   Вверх
math64
Дата 4.7.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

JButton jb = new JButton(MyTextIcon("MyText", new ImageIcon("MyIcon.jpg")));

MyTextIcon рисует текст поверх иконки. Размер - максимум из размеров текста и иконки.
PM   Вверх
TWoVKP
Дата 4.7.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



math64

Что compiler ругается у меня на эту строчку!!! smile 
Может есть ссылочка на эту функцию - MyTextIcon???

Вот примерчик:
Код

public class JButtonWithIconText
{
    public static void main(String[] args)
    {
        JButtonWithIconText probe = new JButtonWithIconText();
    }

    //Konstruktor
    JButtonWithIconText()
    {
        JFrame fenster = new JFrame("Probe - JButton with IconText");
        fenster.setSize(500,300);
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenster.setResizable(false);
        JPanel panel = new JPanel(new GridLayout(2, 2, 0, 0));
        JButton jb = new JButton(MyTextIcon("MyText", new ImageIcon("MyIcon.png")));
        panel.add(jb);
        fenster.add(panel);
        fenster.setVisible(true);
    }
}


А это получаемая ошибочка:
Код

JButtonWithIconText.java:22: cannot find symbol
        JButton jb = JButton(MyTextIcon("MyText", new ImageIcon("MyIcon.png")));
                             ^
  symbol:   method MyTextIcon(java.lang.String,javax.swing.ImageIcon)
  location: class JButtonWithIconText
1 error


А случаем не надо ли самому эту функцию писать??? Уж какое то название странное у этой функции - MyTextIcon!!!! smile 
Ну никак не в стиле JAVA!!!


Подскажите кто ещё чего знает!!!
Позарес надо!!!
Ну или хотя бы ссылочку на эту самую функцию, хочется конструктор поглядеть, да и вообще почитать методы и всё прочее!!!  smile 

Это сообщение отредактировал(а) TWoVKP - 4.7.2009, 21:32
PM MAIL   Вверх
math64
Дата 4.7.2009, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

class MyTextIcon implements Icon {
  private String text;
  private Icon icon;
  public MyTextIcon(String text, Icon icon) {
    this.text = text;
    this.icon = icon;
  }

  public void paintIcon(Component c, Graphics g, int x, int y) {
    icon.paintIcon(c, g, x, y);
    g.setColor(c.getForeground());
    FontMetrics fm = g.getFontMetrics();
    g.drawString(text,
            x + getIconWidth() - (int)fm.getStringBounds(text, g).getWidth()/2,
            y + getIconHeight()/2 + (int)fm.getHeight()/2);
  }

  public int getIconWidth() {
    return icon.getIconWidth();
  }

  public int getIconHeight() {
    return icon.getIconHeight();
  }
}

(На самом деле чуток нужно сложнее)
PM   Вверх
TWoVKP
Дата 4.7.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



math64 


А есть ещё какой нибудь другой способ, стандартный от JAVA, или такого нет??? smile 

Можно реализовать только таким спосбом???
PM MAIL   Вверх
dorogoyIV
Дата 5.7.2009, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



плохо искал по форуму ;)
вместо JButton кладешь JLabel

Это сообщение отредактировал(а) dorogoyIV - 5.7.2009, 01:12
PM MAIL   Вверх
TWoVKP
Дата 5.7.2009, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



dorogoyIV

Спасибо, всё заработало!

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


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

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