Добавление кнопки на окно

276
05 ноября 2017, 16:15

Создаю окно с некоторой надписью и реакцией на нажатие клавиш(отображение нажатых символов на окне). Помогите пожулуйста создать кнопку на этом же окне, по каждому нажатию на которую, будет меняться цвет фона окна.

import java.awt.*;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.event.*;
import java.applet.*;
import java.util.EventListener;
public class AppWindow extends Frame 
{
    String kmsg = "It is window";
    public AppWindow()
    {
        addKeyListener(new MyKeyAdapter(this));
        addWindowListener(new MyWindowAdapter());
     }
     public void paint(Graphics g)
     {
         g.drawString(kmsg, 110, 60);
     }
     public static void main(String[] args)
     {
         AppWindow appwin = new AppWindow();
         appwin.setSize(new Dimension(300, 200));
         appwin.setTitle("Blank window");
         appwin.setVisible(true);
     }
}
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
class MyKeyAdapter extends KeyAdapter
{
     AppWindow appWindow;
     public MyKeyAdapter(AppWindow appWindow)
     {
        this.appWindow = appWindow;
     }
     public void keyTyped (KeyEvent k)
     {
        appWindow.kmsg += k.getKeyChar();
        appWindow.repaint();
     }
}
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class MyWindowAdapter extends WindowAdapter
{ 
     public void windowClosing(WindowEvent e)
     {
         System.exit(0);
     }
}
Answer 1

У объекта Frame есть метод setBackground

https://docs.oracle.com/javase/7/docs/api/java/awt/Frame.html#setBackground(java.awt.Color)

используйте его в слушателе кнопки

public MyKeyAdapter2(AppWindow appWindow)
{
    this.appWindow = appWindow;
}
public void keyTyped (KeyEvent k)
{
    appWindow.setBackground(цвет);
}
}

При создании окна, добавьте в него кнопку и повесьте на неё этого слушателя

public static void main(String[] args)
{
    AppWindow appwin = new AppWindow();
    appwin.setSize(new Dimension(300, 200));
    appwin.setTitle("Blank window");
    JButton button = new JButton();
    button.addListener(new MyKeyAdapter2(appwin));
    appwin.add(button);
    appwin.setVisible(true);
}
READ ALSO
Не работает setImageResource

Не работает setImageResource

Осваивая AndroidStudio, столкнулся с такой проблемойСледующий код должен рисовать на экране бутылку, и далее с помощью многократного вызова fly() , например...

257
e.printStackTrace() заменяет throw?

e.printStackTrace() заменяет throw?

Часто встречаю подобный код:

296
Ошибка версии приложения; Error “application_version”

Ошибка версии приложения; Error “application_version”

При запуске выскакивают ошибки:

394
Создание таблицы SQLite нажатием кнопки

Создание таблицы SQLite нажатием кнопки

Добрый деньПодскажите, каким образом можно создать таблицу методом onClick? Например я создаю школьное расписание, и при первом входе в приложение...

260