Ошибка: button cannot be resolved
Как исправить эту ошибку? Код:
package tstgm;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class bckgrnd {
public static void main(String[] args) {
JButton button = new JButton();
button.addActionListener(new ListenerAction());
button.setSize(1920, 1080);
button.setVisible(true);
EventQueue.invokeLater(new Runnable()
{
public void run()
{
ImageFrame frame = new ImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.add(button);
}
});
}
static class ListenerAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
button.setVisible(false);
button.setSize(0, 0);
}
}
}
class ImageFrame extends JFrame
{
public ImageFrame()
{
setTitle("ImageTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
ImageComponent component = new ImageComponent();
add(component);
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}
class ImageComponent extends JComponent
{
public ImageComponent()
{
try
{
image = ImageIO.read(new File("src/ball.png"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
if(image == null) return;
int imageWidth = image.getWidth(this);
int imageHeight = image.getHeight(this);
g.drawImage(image, 0, 0, null);
}
private Image image;
}
Переменная button
описана внутри метода main
и вне этого метода не видна. Вы можете сделать её видимой, если попишете как поле класса (static).
public class bckgrnd {
static JButton button;
public static void main(String[] args) {
button = new JButton();
Но подобное решение не является эффективным. Будет лучше, если вы используете анонимный класс для слушателя
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setVisible(false);
button.setSize(0, 0);
}
});
Или лямбду
button.addActionListener(e -> {
button.setVisible(false);
button.setSize(0, 0);
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Из android-клиента, на сервер, передается файл в виде строки, на стороне андроид-приложения это делается как-то так:
Не могу понять, почему кастомизированный select с multiple скроллится к первому выбранному значению при выборе любого пункта? Как побороть понятно,...