powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JAVA Look and Feel, Вопрос для гуру в ждаве.
16 сообщений из 16, страница 1 из 1
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332163
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята я научился перерисовывать javax.swing.компоненты.
Я хочу сделать свой XFrame или XWindow, но я понимаю что тупо делать extends от JFrame мне не подходит так как я хочу сделать что-то вроде этого https://s12.postimg.org/ifq2j11kd/AIMP_IU.jpg
Я прекрасно знаю что AWT Компоненты очень тяжелые и понимаю то что SWING компоненты это просто картинка которая перерисовывается и обрабатывает какие то события.

Короче хочу сделать что-то легкое как JFrame, но не хочу удалять что-то или что-то дорисовывать, хочу сделать extends от seper class-a, но я в затруднении от чего делать extends от JWindow, JComponent (который отделяет SWING компоненты от AWT компонентов) или же сделать extends от awt.Frame, но так я рискую сделать дела еще хуже.

Короче от куда ноги растут в JFram-e? И как лучше сделать так чтобы клиент был как можно тоньше и производительней.
Еще планирую в моей XFrame использовать весь набор инструментов пакера SWING. Просто хочу своего интерфейса.

Благодарю за ответ и внимание. Спасибо.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332172
Фотография ponuch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel Lucifer,

используй javafx. там с кастомизацией ui все попроще, плюс отрисовка идет с помощью видюхи.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332181
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ponuch,
То есть она получается намного легче? И я видел Scene класс создан сам по себе, то есть никакой привязки к AWT И SWING пакетам, но мне проще самому нарисовать что-то а потом обработать это листенером.
Дело в том что в JavaFX там css + xml файлы идут а в нормальной java что написал, то и выполнил. Короче Scene я уже видел, но не мое это.
Просто моя цель не только на компьютере запустить все это но и в андроид приложениях а там Scene не сработает.
Плюс я уже хорошо научился вырисовывать свои собственные компоненты и обрабатывать события в них.

Короче я делаю библиотеку более универсальную чем Scene.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332210
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Angel Lucifer,

Ребята, УРА..... Я сделал это. Я просто взялся тестировать на угад и получилось. Вот код, может кому-то еще будет интересно делать подобное.

Главное помните что при нажатии кнопки мышки окно закрывается.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;

import java.awt.Toolkit;
import java.awt.event.KeyListener;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JWindow;

public class XWin extends JWindow {


    public XWin() {
        super();
        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension fs = new Dimension(420, 360);//w,h
        setSize(fs); //width, height
        setVisible(true);
        setLocation((sc.width - fs.width) / 2, (sc.height - fs.height) / 2);
    }

    public static void main(String[] args) {
        XWin xWin = new XWin();
        xWin.addMouseListener(new MouseListener() {
                public void mouseClicked(MouseEvent e) {
                    System.exit(0);
                }

                public void mousePressed(MouseEvent e) {
                    System.out.println("mousePressed");
                }

                public void mouseReleased(MouseEvent e) {
                    System.out.println("mouseReleased");
                }

                public void mouseEntered(MouseEvent e) {
                    System.out.println("mouseEntered");
                }

                public void mouseExited(MouseEvent e) {
                    System.out.println("HI!");
                }
            });
    }

    @Override
    public void paint(Graphics graphics) {
        Graphics2D g = (Graphics2D)graphics;
        int w = getWidth();
        int h = getHeight(); // Red, Green, Blue;
        Color color1 = new Color(255, 0, 255);
        Color color2 = new Color(205, 0, 205);
        GradientPaint gp = new GradientPaint(0, 0, color1, 0, h / 2, color2);
        GradientPaint gp2 = new GradientPaint(0, h / 2, color2, 0, h, color1);
        g.setPaint(gp);
        g.fillRect(0, 0, w, h / 2);
        g.setPaint(gp2);
        g.fillRect(0, h / 2, w, h);

        g.setColor(Color.BLACK);
        String string = "Hello";
        Font font = new Font("Andalus", Font.PLAIN, 48);
        FontMetrics fm = this.getFontMetrics(font);
        g.drawLine(0, 0, w, 0); //x:y / w:h
        g.drawLine(0,0,0, h);
        g.drawLine(0, h - 1, w, h - 1);
        g.drawLine(w - 1, 1, w - 1, h);
        g.setColor(new Color(255, 255, 25));
        g.setFont(font);
        g.drawString(string, ((w - fm.stringWidth(string)) / 2), ((h + fm.getHeight()) / 2) - fm.getDescent());
    }

}
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332222
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel LuciferВот код, может кому-то еще будет интересно делать подобное.
интересно мышкой двигать и строить компоненты. А не в коде по 20 строк на компонент писать.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332224
Фотография ponuch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Angel LuciferВот код, может кому-то еще будет интересно делать подобное.
интересно мышкой двигать и строить компоненты. А не в коде по 20 строк на компонент писать.

Дык это, я ж говорю- Scene Builder, а товарищ сопротивляется, говорит руками краше получается
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332290
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ponuch,

Да не сопротивляюсь я вовсе, спасибо что ответил так точно, это просто я хотел сделать что-то легкое используя JComponents, все потому-что пакет SWING мне хорошо знаком, а вот FX появился только-только и потому нет доверия сразу такого на все 100%.

Короче еще вчера я понял от куда в SWING компонентах ноги растут, но не проверял. А растут они от класса JComponent, это я написал чтобы дать наводку тем кому интересно все перерисовать, а вам скажу СПАСИБО :) ну и займусь FX
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39332488
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel Luciferа вот FX появился только-только
On December 4, 2008 Sun released JavaFX 1.0.2

Angel LuciferА растут они от класса JComponent
Не брезгуйте чтением документации.

Angel Luciferэто я написал чтобы дать наводку тем кому интересно все перерисовать
Всем кому интересно перерисовывать уже давно занимаются HTML и CSS.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39333957
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

В этом вы очень правы, да это так и есть. Я задал этот вопрос поскольку я люблю улучшать код и вылизывать его так чтобы потом отсутствовали ошибки и задержки, то я вот задался целью научиться рисовать свой тяжеловесный компонент на экране, сначала нарисовав его в буфере, проверив, а потом уже и отрисовав на экране.

Я сделал расширение класса Window и у меня получилось перерисовать на мой лад все как я захотел, но перелопатив классы и подклассы я еще не понял как рисуется тяжелый компонент в джаве.

Прошу вас подскажите как из кода java используя только пакет java.lang, можно обратиться к виртуальной машине джава и отрисовать хотябы розовый квадрат на моем экране. Я прекрасно понимаю что все ждава приложения прозрачны и у них только один тяжелы компонент, но я не понимаю как его отрисовать и задержать на экране.

Прошу вас объясните мне, что к чему. Пожалуйста.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39334077
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel LuciferЯ задал этот вопрос поскольку я люблю улучшать код и вылизывать его так чтобы потом отсутствовали ошибки и задержки
Ну, так может что-то более полезное повылизывать?

Angel Lucifer то я вот задался целью научиться рисовать свой тяжеловесный компонент на экране, сначала нарисовав его в буфере, проверив, а потом уже и отрисовав на экране.
Двойная буферизация уже реализована в Swing.

Angel Lucifer Я сделал расширение класса Window и у меня получилось перерисовать на мой лад все как я захотел, но перелопатив классы и подклассы я еще не понял как рисуется тяжелый компонент в джаве.
Что такое "тяжелый компонент"?


Angel Lucifer
Прошу вас подскажите как из кода java используя только пакет java.lang, можно обратиться к виртуальной машине джава и отрисовать хотябы розовый квадрат на моем экране. Я прекрасно понимаю что все ждава приложения прозрачны и у них только один тяжелы компонент, но я не понимаю как его отрисовать и задержать на экране.
Прошу вас объясните мне, что к чему. Пожалуйста.
У вас какая-то каша в голове. Давайте есть кита по частям.
java.lang это самые базовые классы Java и к графике они отношения не имеют.
JVM это виртуальная машина для выполнения байткода и к графике она тоже отношения не имеет.
Для того чтобы в Swing отрисовать что-то своё достаточно переопределить метод paintComponent(). При этом сохранится и двойная буферизация и другие плюшки уже реализованные в Swing.
LookAndFeel это не только графическое представление, но и поведение контролов. Я бы порекомендовал начать с чтения кодов классов относящихся к LookAndFeel - BasicLookAndFeel - WindowsLookAndFeel, LabelUI, BasicLabelUI и так далее.
Старые LAF вроде Metal, Windows и Motif реализуют отрисовку в UI классах соответствующийх контролам Swing.
Новый LAF - Synth был задуман под "шкурки", где отрисовка реализуется отдельно от самого LAF. Nimbus - новый LAF на базе Synth, который решает проблему масштабирования.

Реализовывать свой LAF достаточно бессмысленно. Во-перых это очень трудоемкая задача. Во-вторых никому не нужная.
Я бы вам настоятельно рекомендовал перейти на JavaFX.

Если будут конкретные вопросы, то отвечу. Разглагольсвования с применением терминов, которые вы не понимаете, прошу оставить на потом.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39335795
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Спасибо.
Как я понимаю в свинге уже и так все создано, тогда если поменяю вид всех элементов так как мне захочется, то никакой дополнительной нагрузки и вычислений не будет. Так что я даже могу нарисовать свой JMenuBar и при запуске приложения это у меня не будет отнимать лишних ресурсов?

А на Java FX нету смысла переходить по многим причинам,
Во первых ораклу дали ультиматум чтобы все джава проги все нисили при себе.
Более 100MB JDK.
Пакеты сирые.
Есть баги которых еще не устранили.
Это есть разработка оракла еще при SUN которая потерпела фиаско и я считаю что Java FX это просто чтобы срубить бабок, маркетинг короче.

А вот swing как работала уже более 10 лет так и работает.
Мне просто нужно от свинга современный вид, вот и все.
Ну и пойду почитаю код IU.
Спасибо еще раз.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39335803
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel Lucifer,
может тебе на пенсию?
Андроид наверно тоже - срубить бабла придумали?
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39335899
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel LuciferКак я понимаю в свинге уже и так все создано
Всё уже написано до нас. Вы описывате что вы собираетесь делать. Но мы понятия не имеет почему вы это собрались делать.

Angel Luciferтогда если поменяю вид всех элементов так как мне захочется, то никакой дополнительной нагрузки и вычислений не будет.
Очень зависит от того что вы там понапишите. Отрисовку очень легко зафакапить так что она станет медленной.

Angel LuciferА на Java FX нету смысла переходить по многим причинам,
Во первых ораклу дали ультиматум чтобы все джава проги все нисили при себе.

Кто дал ультиматум? Что за фантазии?

Angel LuciferБолее 100MB JDK.

- В котором уже есть как Swing, так и JavaFX.
- Для Swing/JavaFX достаточно JRE.
- Если вы пишете под десктоп, то пора бы для себя открыть pack200. Я им JRE до 25Мб упаковываю.

Angel LuciferПакеты сирые.
Откуда сие знание?

Angel LuciferЕсть баги которых еще не устранили.
Они везде есть.

Angel LuciferЭто есть разработка оракла еще при SUN которая потерпела фиаско и я считаю что Java FX это просто чтобы срубить бабок, маркетинг короче.
Вы просто не писали крупных GUI приложений. Геморроя в Swing на много больше.

Angel LuciferА вот swing как работала уже более 10 лет так и работает.
На этом плюсы заканчиваются.
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39335943
pand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Angel Lucifer,
может тебе на пенсию?
Андроид наверно тоже - срубить бабла придумали?

А собственно почему бы и нет. Как по мне все разработки ведутся чтобы бабла срубить , даже те что open Source.
И ничего плохого в этом я не вижу. Каждый из нас работает чтобы бабла срубить. :)
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39336037
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandPetro123Angel Lucifer,
может тебе на пенсию?
Андроид наверно тоже - срубить бабла придумали?
А собственно почему бы и нет. Как по мне все разработки ведутся чтобы бабла срубить , даже те что open Source.
И ничего плохого в этом я не вижу. Каждый из нас работает чтобы бабла срубить. :)
Такой аргумент для ПТ пойдёт.
А тут, я лично не понял его фразу, что он не хочет изучать JavaFX т.к. эта технология от "бабла срубить".
Поэтому и вывод, ТС в игрушки играет или хернёй занимается.
Имеет право).
...
Рейтинг: 0 / 0
JAVA Look and Feel, Вопрос для гуру в ждаве.
    #39342132
Angel Lucifer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Да какие там игрушки, свое приложение пишу, но хочется сделать все хорошо без ошибок.
И бабла хочется срубить конечно.

А вот ультиматум действительно был, от Майкрософт который отказывается от постоянной установки джава на оперативку, а тут еще и FX нужно поддерживать как-то, так вот с SUN идея джавы машины прокатила и вот для FX нужно носить все при себе.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JAVA Look and Feel, Вопрос для гуру в ждаве.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]