4.02.2015 / 18:31 | |
Askalite Пользователь Сейчас: Offline
Имя: Аскалайт Регистрация: 12.10.2011
| Цитата Kalter: Askalite, посмотрел в исходники - нет. Просто java.awt.Dimension - производный класс от java.geom.Dimension2D. Для меня просто удивлением было то, что мы передаём в javax.swing.JFrame так и говорю, от очень абстрактного родителя досталось. Вдруг кто от этого же родителя запилит размеры в дюймах? Или в процентах? А так создавать два абстрактных класса не выгодно, вот и забацали один, тем более вся это фигня решается преобразованием типов.
|
4.02.2015 / 21:24 | |
Kalter Пользователь Сейчас: Offline
Имя: Гриб Откуда: Оренбург - Нежинка Регистрация: 16.10.2013
| Я обнаружил, что почти везде используются картинки, предоставленные классом java.awt.image.BufferedImage, однако, для того что бы использовать картинку в некоторых методах класса java.awt.Graphics или java.awt.Graphics2D (для рисования, конечно же), необходим java.awt.Image. Класс java.awt.Toolkit предоставляет возможность преобразования (и не только картинок), однако этого не совсем достаточно - появляется много лишнего кода с загрузкой, преобразованием, обработкой исключений, и тому подобного... Написал такой вот класс, но боюсь я, что это велосипед. Принимаю критику. Открыть спойлер Закрыть спойлер // package code.kalter.
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* Загрузчик картинок
*
* @author Kalter
*/
public class ImageLoader {
public static Image castBufferedImageToImage(BufferedImage source) {
return Toolkit.getDefaultToolkit().createImage(source.getSource());
}
// после выполнения данного метода поток остаётся открытым
public static Image createImage(InputStream inputStream) throws IOException {
return castBufferedImageToImage(ImageIO.read(inputStream));
}
public static Image createImageFrom(String path,String from)
throws IOException,IllegalArgumentException {
if (!from.equals(from.toLowerCase())) {
throw new IllegalArgumentException("variable \"from\""
+ "does not lower case");
}
switch (from) {
case "jar": {
return createImageFromJar(path);
}
default: {
throw new IllegalArgumentException("place \"from\" not found");
}
}
}
private static Image createImageFromJar(String path) throws IOException {
try (InputStream inputStream = Runtime
.getRuntime()
.getClass()
.getResourceAsStream(path);) {
return createImage(inputStream);
}
}
private ImageLoader() {
}
}
__________________
Homo homini penis est. Изменено Kalter (4.02 / 21:26) (всего 1 раз) |
4.02.2015 / 22:13 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Цитата Kalter: однако, для того что бы использовать картинку в некоторых методах класса java.awt.Graphics или java.awt.Graphics2D (для рисования, конечно же), необходим java.awt.Imageа зачем использовать такие методы? |
4.02.2015 / 22:15 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Kalter, Лишний уровень абстракции, можно просто Toolkit.getDefaultToolkit().createImage (source.getSource ()) ; написать вместо
public static Image castBufferedImageToImage(BufferedImage source) { return Toolkit. getDefaultToolkit () . createImage ( source.getSource ()) ; }
|
4.02.2015 / 22:20 | |
Kalter Пользователь Сейчас: Offline
Имя: Гриб Откуда: Оренбург - Нежинка Регистрация: 16.10.2013
| DominaN, для рисования на java.awt.Canvas, например.
Naik, я хотел покороче)
__________________
Homo homini penis est. |
5.02.2015 / 00:54 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Kalter, Хм. Graphics2D отлично справляется с рисованием BufferedImage на канвасе. Я когда с j2me движок портировал тоже долго привыкал, а теперь вот уже на OpenGL отрисовку перевел
|
5.02.2015 / 04:46 | |
kingdosya Пользователь Сейчас: Offline
Имя: Сергей Откуда: Вашингтон Регистрация: 06.08.2013
| Цитата Its_Your_Soul: Oak, Думаю Java 6.Верно
|
5.02.2015 / 08:19 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| На линукс беда с шрифтами. Они такие как на китайском телефоне.
__________________
знает толк |
5.02.2015 / 10:49 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| vl@volk, Америку открыл Но не везде, в eclipse нормальные шрифты например |
5.02.2015 / 14:18 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| vl@volk, помню я какой-то пакет ставил с виндовскими шрифтами, это вообще популярная проблема. Другое дело, вот помню у меня на семерке шрифты в нетбинсе поплыли жутко, сплошная размазня на экране. Я и нетбинс переустанавливал, и шрифты сносил, и антиалиазинг отключал - все бестолку. А оказалось, надо было в драйвере видеокарты отключить "Интеллектуальное сглаживание".
|