Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

onpaint

6.6K
17 марта 2008 года
Mendler
48 / / 20.09.2006
есть ли в Java аналог OnPaint на C++, или как можно сделать, чтобы пи нажатии на button она меняла вид?
360
17 марта 2008 года
P*t*
474 / / 15.02.2007
[highlight=java]
JButton b = new JButton();
b.setColor(Color.white);
b.addActionListener(new ActionLister() {
public void actionPerformed(ActionEvent e) {
b.setColor(Color.black);
}
});
[/highlight]
Это то что требуется?
6.6K
17 марта 2008 года
Mendler
48 / / 20.09.2006
Это то что требуется?
приблизительно да, только у jButton нету метода setColor, и необходимо изменить не цвет, а прорисовку кнопки...
360
17 марта 2008 года
P*t*
474 / / 15.02.2007
ой, это я ошибся. Не setColor(), а setBackground()
Форму изменить - тоже какой-то метод есть, только я не помню.
6.6K
17 марта 2008 года
Mendler
48 / / 20.09.2006
Цитата: P*t*
ой, это я ошибся. Не setColor(), а setBackground()
Форму изменить - тоже какой-то метод есть, только я не помню.



а если требуется подставить вместо кнопки рисунок jpg?

274
18 марта 2008 года
Lone Wolf
1.3K / / 26.11.2006
Курим доки..
http://java.sun.com/javase/6/docs/api/javax/swing/JButton.html

Насчет аналога onpaint() - это void paint(Graphics g)
38K
28 марта 2008 года
in8finity
3 / / 28.03.2008
Насколько мне известно, более корректно использование
protected void paintComponent(Graphics g), определенного в классе JComponent
31K
04 апреля 2008 года
Большой Синий Кит
5 / / 21.11.2007
Цитата: in8finity
Насколько мне известно, более корректно использование
protected void paintComponent(Graphics g), определенного в классе JComponent



Точно! :) Лучше всего присваивать необходимое UI

 
Код:
JButton button=new JButton();
 button.setBorderPainted(false);
 button.setContentAreaFilled(false);
 button.setUI(MyButtonUi.ui);
 button.setPreferredSize(new Dimension(120,30));


А вота и само UI(можно нарисовать чего угодно, конечно):
Код:
package com.suppx.ems;

import com.suppx.ems.gui.common.MyButtonUI;

import javax.swing.plaf.basic.BasicButtonUI;
import javax.swing.*;
import java.awt.*;


public class MyButtonUi extends BasicButtonUI {
    final static BasicButtonUI ui=new MyButtonUi();
    Color one=new Color(3, 118, 216);
    Color two=Color.WHITE;
    MyButtonUi(){

    }
   
    public void update(Graphics g, JComponent c){
        AbstractButton b = (AbstractButton) c;
        ButtonModel model=b.getModel();
        Graphics2D g2d=(Graphics2D)g;
        int width=c.getSize().width;
        int height=c.getSize().height;
        if(!model.isPressed()&&!model.isRollover()){
        g2d.setPaint(new GradientPaint(0,0,one,width-3,height-3,two));
        g2d.fillRect(0,0,width-3,height-3);
        g2d.setColor(Color.BLUE.brighter());
        g2d.drawRect(0,0,width-3,height-3);
        }else {
            g2d.setPaint(new GradientPaint(2,2,two,width-7,height-7,one));
            g2d.fillRect(2,2,width-7,height-7);
            g2d.setColor(Color.black);
            g2d.drawRect(2,2,width-7,height-7);
        }

        if(model.isRollover()&!model.isPressed()){
            g2d.setPaint(new GradientPaint(0,0,two,width-3,height-3,one));
            g2d.fillRect(0,0,width-3,height-3);
            g2d.setColor(Color.black);
            g2d.drawRect(0,0,width-3,height-3);
        }

       // g.setColor(Color.BLACK);
       // g.fillRect(0,0,100,100);
        paint(g,c);
    }

}
240
04 апреля 2008 года
aks
2.5K / / 14.07.2006
Цитата: Mendler
аналог OnPaint на C++


В С++ такого тоже нет. )

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог