2014-11-27 3 views
0

К настоящему времени я уже знаю, что мой код испорчен. Я просто хочу знать , почему он испорчен. Я хочу активировать «webButton», чтобы при нажатии на него выводилось сообщение на консоли, в котором говорится: «Это открывает Mozilla Firefox».Как мне активировать кнопку в графическом интерфейсе?

package smartphone; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import javax.swing.*; 
import java.util.Scanner; 

public class Smartphone implements ActionListener { 

public static void main(String[] args) { 
{ 
{ 
JFrame container = new JFrame(); 

container.setLayout(new BorderLayout()); 

Scanner daniel = new Scanner(System.in); 

JButton webButton = new JButton(new ImageIcon("Firefox.png")); 
JButton phoButton = new JButton(new ImageIcon("Facebook.png")); 
JButton texButton = new JButton(new ImageIcon("Phone.png")); 
JButton setButton = new JButton(new ImageIcon("Settings.png")); 
JButton smsButton = new JButton(new ImageIcon("sms.png")); 


container.setTitle("Smartphone Interface!"); 
container.setSize(240,340); 
container.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

container.add(setButton, BorderLayout.CENTER); 
container.add(webButton, BorderLayout.SOUTH); 
container.add(texButton, BorderLayout.NORTH); 
container.add(phoButton, BorderLayout.EAST); 
container.add(smsButton, BorderLayout.WEST); 
container.setVisible(true); 


    webButton.addActionListener(instanceofSmartphone); 

    } 

    } 
    } 
    } 
+0

Это ** android ** код? ** Нет никаких доказательств **, что это так. –

+0

удалите тег Android и добавьте тег Swing, например – mobilepotato7

+0

. На какую часть вашего вопроса нельзя ответить, прочитав кнопку [tutorial] (https://docs.oracle.com/javase/tutorial/uiswing/components/button. html # abstractbutton) – Robin

ответ

0

Сделайте это.

webButton.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) 
     { 
      //Execute when button is pressed 
     } 
    }); 

Если вы хотите использовать интерфейс ActionListener затем реализовать его в классе кадров, а затем заменить эту instanceOfSmartphone с

webButton.addActionListener(this); 

И поставить это за пределами метода

public void actionPerformed(ActionEvent e) { 
    if(e.getSource() == webButton) { 
    } 
} 
+0

Вы должны извинить меня, потому что я все еще новичок, но этот блок кода должен идти прямо внизу? И как я могу распечатать заявление с помощью webButton после этого? –

+0

внутри если. Первый блок кода вы можете использовать вместо webButton.addActionListener (instanceofSmartphone); Второй блок, просто оставьте все как есть, но замените экземплярSmartphone, когда я ввел отредактированный ответ. Затем поместите второй блок вне любого метода. – mobilepotato7

0

Вы необходимо реализовать метод actionPerformed. Приведем пример.

public void actionPerformed(ActionEvent e) { 
    System.out.println("This method opens Mozilla Firefox."); 
} 

Кроме того, вам необходимо изменить способ добавления слушателя действий к следующему.

webButton.addActionListener(this); 

Существует также ряд других вопросов. Вот модифицированная версия вашего кода, чтобы заставить ее работать, но далеко не идеальную или то, что вам нужно в конце. Я настоятельно рекомендую вам пройти все обучающие программы на следующем веб-сайте. Это не становится легче, чем то, что у них есть. Кроме того, если вы еще не используете его, вы должны попробовать Netbeans или другую среду IDE. Это дает вам обратную связь, которая может помочь, когда вы начинаете. https://docs.oracle.com/javase/tutorial/

package smartphone; 

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 
import java.util.Scanner; 

public class Smartphone extends Frame implements ActionListener { 
    static JButton webButton = new JButton(new ImageIcon("Firefox.png")); 
    static JButton phoButton = new JButton(new ImageIcon("Facebook.png")); 
    static JButton texButton = new JButton(new ImageIcon("Phone.png")); 
    static JButton setButton = new JButton(new ImageIcon("Settings.png")); 
    static JButton smsButton = new JButton(new ImageIcon("sms.png")); 

    Smartphone(){ 
     webButton.addActionListener(this);  
    } 

    public static void main(String[] args) { 

     Smartphone container = new Smartphone(); 

     container.setLayout(new BorderLayout()); 

     Scanner daniel = new Scanner(System.in); 

     container.setTitle("Smartphone Interface!"); 
     container.setSize(240, 340); 

     container.add(setButton, BorderLayout.CENTER); 
     container.add(webButton, BorderLayout.SOUTH); 
     container.add(texButton, BorderLayout.NORTH); 
     container.add(phoButton, BorderLayout.EAST); 
     container.add(smsButton, BorderLayout.WEST); 
     container.setVisible(true); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     System.out.println("This opens a Firefox Webbrowser."); 
    } 
} 
+0

Я посетил эту точную страницу много раз. Это все еще слишком технично для меня. –

0

Вы должны добавить ActionListener к кнопкам ВНУТРИ конструктора: buttonName.addActionListener(this);. Затем вам необходимо создать следующий метод: public void actionPerformed(ActionEvent event) { Object control = event.getSource(); if (control == buttonName) { //Run code... } }

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