Разбираюсь с методом paint(Graphics)
у компонентов интерфейса. Столкнулся с такой интересной особенностью.
Допустим, я рисую чёрный прямоугольник внутри метода:
private class GraphicsArea extends JPanel{
private float xn = 10f;
private float yn = 10f;
public void paint(Graphics g){
Graphics2D painter = (Graphics2D)g;
painter.setColor(Color.BLACK);
Rectangle2D graphicAreaRect = new Rectangle2D.Double(getX()+xn, getY()+yn, getWidth()-2*xn, getHeight()-2*yn);
painter.draw(graphicAreaRect);
}
}
В этом случае все работает и прямоугольник появляется. Но если я объявляю прямоугольник, как приватное поле, отрисовки не происходит.
private class GraphicsArea extends JPanel{
private float xn = 10f;
private float yn = 10f;
private Rectangle2D graphicAreaRect = new Rectangle2D.Double(getX()+xn, getY()+yn, getWidth()-2*xn, getHeight()-2*yn);
public void paint(Graphics g){
Graphics2D painter = (Graphics2D)g;
painter.setColor(Color.BLACK);
painter.draw(graphicAreaRect);
}
}
И так с любыми подобными фигурами. Почему так происходит? Метод не видит поля не примитивного типа?
Вероятно, методы getX
, getWidth
и т.п. в момент создания фигуры во втором случае возвращают значения, которые еще не отражают положения и размеров панели.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть следующий код, который работает при скачивании файлов с заранее известным размером (выполняется внутри AsyncTask):
Необходимо, что бы в программе был и web и main файл, стартующий при запуске программыСобираю для jboss с помощью мавена war и main не отрабатывает
Программа генерирует псевдослучайные целые числа в диапазоне от 1 до 5Найти вероятную частоту выпадения серии из 5 одинаковых чисел