2014-09-24 3 views
-3

Я работаю с кнопками java, и я создал кнопку, но когда я нажимаю кнопку, мне нужна форма объекта для изменения. Это код, который я работал наКак добавить действия к кнопке в java

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
public class shapes { 
public static void main(String[] a) { 
    JFrame f = new JFrame("Change shapes"); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JButton b = new JButton("Shapes Change"); 
    f.getContentPane().add(b); 
    f.pack();  
    f.setVisible(true); 




} 

Public void paint (Graphics g) 
{ 
    //no clue what to do here 

} 
private static abstract class MyButton extends JButton implements ActionListener { 
MyButton() 
{ 
    addActionListener(this); 
} 

    public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == b) 
     { 

       //no clue what to do here 

      } 
} 
} 
} 

Сначала Существует форма создается, когда кнопка нажата это, я хочу, чтобы изменить его в другую форму.

+0

никто не знает о вашей спецификации, поэтому вы должны сообщить нам, что вы хотите, чтобы мы не сказали U –

ответ

3

Там действительно должна быть какая-либо необходимость в подклассе JButton. Если вы хотите настроить кнопку, вы можете использовать API Action, см. How to Use Actions.

Для выполнения пользовательских живописи вам следует расширить компонент Swing, как JComponent или JPanel и переопределить метод paintComponent ...

См Performing Custom Painting для более подробной информации.

Затем вам необходимо предоставить какой-либо метод, который вы могли бы назвать, чтобы сообщить компоненту, что форма должна измениться на то, как форма должна быть изменена.

Вы бы тогда обеспечить средство для ваших кнопок ActionListener ссылаться на экземпляр панели краски и называют эти методы ...

0

Вы просто добавить ActionListener к кнопке:

b.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     // do some action 
    } 
}); 

A пара другие примечания:

  1. Вы не должны запускать методы Swing вне Event Dispatch Thread (EDT) или можете столкнуться с непредсказуемыми ошибками.
  2. Java naming conventions указать, что имена классов должны быть капитализированы. В вашем коде вы назвали класс «фигуры», но более правильным назвать его «Shapes».
0

Сначала объявить и определить методы для рисования объектов. Например drawSquare(), drawCircle(), который рисует необходимые фигуры. Определите радиокнопку или что-то подобное этому, чтобы получить выбор пользователя (чтобы узнать, какой объект должен быть нарисован). В actionPerformed() проверьте, какая радиобарабана выбрана, и вызывайте соответствующий метод для рисования объектов и вызываете repaint() для обновления в пользовательском интерфейсе

Смежные вопросы