Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.222.63.67] |
|
Сообщ.
#1
,
|
|
|
Результатом данногой программы является круглая кнопка с изображенным на ней рисунком чашечки дымящегося кофе (за художеские способности, или вернее -- их отсутсвие, просьба гнилыми бананами не кидать ).
import java.awt.*; import java.awt.event.*; class UnButton extends Component implements MouseListener { private boolean isDown=false; public UnButton() { super(); addMouseListener(this); enableEvents(AWTEvent.MOUSE_EVENT_MASK); } public void drawUn(Graphics g, int x, int y, int w, int h) { //Здесь рисуется рисунок, который потом будет на кнопке g.drawLine(x+10, h-13, 3*w/4, h-13); g.drawLine(x+11, h-12, 3*w/4-1, h-12); g.drawLine(x+12, h-11, 3*w/4-2, h-11); g.fillOval(w/4, h/2-2, 3*w/6, h/8); g.drawLine(w/4, h/2, x+17, h-13); g.drawLine(w/4+3*w/6, h/2, 3*w/4-8, h-13); g.drawArc(w/2-5, h/3-5, w/6, h/6, -45, 180); g.drawArc(w/3, h/4-5, w/6, h/6, 135, 180); } public void paint (Graphics g) { //Создаем саму кнопку с рисунком int w=getSize().width, h=getSize().height; int d=Math.min(w, h); Color c=g.getColor(); g.setColor(Color.lightGray); g.fillArc(0, 0, d, d, 0, 360); g.setColor(c); if (isDown) { g.drawArc(0, 0, d, d, 43, 180); g.drawArc(1, 1, d-2, d-2, 43, 180); drawUn(g, 8, 10, d, d); } else { g.drawArc(0, 0, d, d, 229, 162); g.drawArc(1, 1, d-2, d-2, 225, 170); drawUn(g, 6, 8, d, d); } super.paint(g); } public Dimension getPreferredSize() { return new Dimension(30, 30); } public Dimension getMinimumSize() { return getPreferredSize(); } public Dimension getMaximumSize() { return getPreferredSize(); } public void mousePressed(MouseEvent e) { isDown=true; repaint(); } public void mouseReleased(MouseEvent e) { isDown=false; repaint(); } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} } public class DrawButton extends Frame { // Для сравнения приводится и стандартная кнопка DrawButton(String s) { super(s); setLayout(null); setBackground(Color.white); Button b=new Button("OK"); b.setBounds(200, 50, 100, 60); add(b); UnButton d=new UnButton(); d.setBounds(50,50,65,65); add(d); setSize(400,150); setVisible(true); } public static void main(String[]args) { Frame f=new DrawButton("The button with a picture"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent ev) { System.exit(0); } }); } } [Автор - Angie] |