Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Розмещение компонентов во фрэйме 
:(
    Опции темы
aromanu
Дата 4.6.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Всем доброго времени суток. Задали курсач. Решил выделиться и сделать его на Java. Java я не знаю, поэтому достал книгу, зашел на Google и начал писать курсач по мере изучения языка. Пишу два дня, через неделю надо закончить. ТЗ следующее: сделать имитацию ландшафта с помощью класса "столбик". Я создал класс myFrame, суперкласс для myFrame это JFrame. Далее в конструкторе инициализировал фрэйм(контейнер для последующего размещения там графических компонентов). Затем создал класс aloft, суперкласс для aloft это JComponent, там прописал рисование "столбика".
Мне нужно чтобы во фрэйме можно было размещать этих объектов сколько угодно, а у меня вырисовывается только последний. Где моя ошибка, и еще есть какие нибудь методы позволяющие размещать компоненты во фрэйме.
Вот код:
Код

package javaapplication;
/**
 *
 * @author roman
 */
import java.awt.*; //базовый пакет для работы с графическим интерфейсом
//import java.awt.geom.Ellipse2D; //операции двумерной геометрии для awt
import javax.swing.JComponent;
import javax.swing.JFrame;
//import sun.java2d.loops.DrawPolygons;

class myFrame extends JFrame { //JFrame - контейнер для GUI интерфейса
    private Dimension screenSize; //закрытое поле члена класса myFrame
    myFrame() {
        Toolkit kit = Toolkit.getDefaultToolkit(); //getDefaultToolkit - статический метод класса Toolkit (содержит методы, предназначенные для
                                                   //взаимодействия с оконной системой конкретной платформы)
        screenSize = kit.getScreenSize(); //Dimension - размер
        setLocation(screenSize.width/2, 0); //метод устан. коорд. контейнера
        setSize(screenSize.width/2, screenSize.height); //метод устан. размер окна
        setLocationByPlatform(true);
        setTitle("java sample");
        toFront(); //метод выводит окно фрейма на передний план
    }
    public int getScreenSizeX() { //метод-акцессор возвращает ширину контейнера
        return screenSize.width;
    }
    public int getScreenSizeY() { //метод-акцессор возвращает высоту контейнера
        return screenSize.height;
    }
}

class myPolygon extends Polygon { //суперклассом объекта myPolygon является класс Polygon
    private int x; //защищенные поля данных
    private int y;
    myPolygon() { //конструктор суперкласса подкласса
        super();
    }
    myPolygon(int[] xPoints, int[] yPoints, int nPoints) { //полиморфный конструктор суперкласса подкласса
        super(xPoints, yPoints, nPoints);
    }
    public void myaddPoint(int x, int y, Polygon p) { //метод при инициализации координат точки производит запись в защищенные поля данных
        p.addPoint(x, y);                             //переменная суперкласса может ссылаться на объект подкласса
        this.x = x;
        this.y = y;
    }
    public int retX() { //метод-акцессор возвращает x-координату последней добавленной точки
        return x;
    }
    public int retY() { //метод-акцессор возвращает y-координату последней добавленной точки
        return y;
    }
}

class aloft extends JComponent { //класс "столбик"
    private int x; //координаты объекта "столбик" в пикселах
    private int y;
    private int height; //высота объекта "столбик" в пикселах
    static int scale; //масштаб объекта "столбик" в пикселах (член scale класса aloft может использоваться самостоятельно без ссылки на экз.)
    aloft(int x, int y, int height) { //конструктор aloft
        this.x = x;
        this.y = y;
        this.height = height;
    }
    public void saloft(int x, int y, int height) { //открытый метод переопределяет параметры объекта "столбик"
        this.x = x;
        this.y = y;
        this.height = height;
    }
    private void figure(Graphics2D g2, Polygon p, Color c) { //закрытый метод рисует залитый многоугольник
        g2.setColor(c); //цвет переднего плана
        g2.fillPolygon(p);
    }
    @Override //переопределение реализации суперкласса
    public void paintComponent(Graphics g) { //перегруженный открытый метод тип его аргумента - абстрактный класс Graphics
        super.paintComponent(g); //вызов конструктора суперкласса
        Graphics2D g2 = (Graphics2D)g; //приведение типов
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //для гладких краев на рисунке
        Color c = Color.BLACK; //объект принимает цветовую константу класса Color
        myPolygon p = new myPolygon(); //drawPolygon(myPolygon p)
        p.myaddPoint(x, y, p);
        p.myaddPoint(p.retX() - scale, p.retY(), p);
        p.myaddPoint(p.retX(), p.retY() - height, p);
        p.myaddPoint(p.retX() + scale, p.retY(), p);
        figure(g2, p, c); //лицевая сторона
        c = Color.GREEN;
        p.reset(); //деактивация полей класса Polygon
        p.myaddPoint(x, y, p);
        p.myaddPoint(p.retX(), p.retY() - height, p);
        p.myaddPoint(p.retX() + scale, p.retY() - scale, p);
        p.myaddPoint(p.retX(), p.retY() + height, p);
        figure(g2, p, c);
        c = Color.RED;
        p.reset(); //деактивация полей класса Polygon
        p.myaddPoint(x, y - height, p);
        p.myaddPoint(p.retX() - scale, p.retY(), p);
        p.myaddPoint(p.retX() + scale, p.retY() - scale, p);
        p.myaddPoint(p.retX() + scale, p.retY(), p);
        figure(g2, p, c);
    }
    static { //блок инициализации переменных типа static
        scale = 5;
    }
}
    
public class Main {
    public static void main(String[] args) {
        final myFrame f = new myFrame(); //этот объект не может быть суперклассом
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //реакция на закрытие фрейма (в данном случае программа завершает работу)
        f.setVisible(true); //установка видимости фрейма
        int h = 10;
        //for(int x = aloft.scale; x <= (f.getScreenSizeX() - aloft.scale); x += aloft.scale) {
            aloft component = new aloft(150, 300, 100); //[color=red]НЕ РАБОТАЕТ[/color]
            aloft component2 = new aloft(10, 300, 100); //[color=red]РИСУЕТ ТОЛЬКО ПОСЛЕДНИЙ ДОБАВЛЕННЫЙ КОМПОНЕНТ[/color]
            f.add(component);
            component.saloft(20, 300, 100);
            f.add(component2);
            component.saloft(30, 300, 100);
            f.add(component);
        //}
        System.out.println(f.getScreenSizeX() + " " + aloft.scale); ////////////////////////////////////////////////////
    }
}


PM MAIL   Вверх
AntonSaburov
Дата 4.6.2009, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 118



Цитата(aromanu @  4.6.2009,  12:31 Найти цитируемый пост)
ТЗ следующее: сделать имитацию ландшафта с помощью класса "столбик"

Теперь расшифруй smile
Цель пока не совсем ясна - смотреть код того, что не понимаешь, сложно.
PM MAIL WWW ICQ   Вверх
aromanu
Дата 4.6.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



У нас есть класс "столбик" один из его методов рисует сам столбик http://s44.radikal.ru/i103/0906/9a/9286e925a6bb.png.
И с помощью этих "столбиков" нужно имитировать 3d-поверхность. Как это сделать я еще не придумал.(Точнее есть 2 идеи, только не знаю как реализовать на Java, надо еще гуглить. 1) Регулировать "столбики" по высоте. Опять же надо достать где нибудь функцию(математическую) 2)Это возвышения представлять в более светлых тонах, а впадины в более темных. Если есть еще какой нибудь способ, то буду вам очень признателен). Но суть в том что для реализации вышесказанного надо что бы в форме находилось достаточно много столбиков, а у меня не получается это делать: в форме отображается только один компонент, последний добавленный. В чем я накосячил? 
PM MAIL   Вверх
math64
Дата 4.6.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 5
Всего: 72



JFrame по умолчанию имеет BorderLayout, т.е. можно вставить только 5 компонентов - по одному по краям и один в центр. Можно поменять Layout, но лучше вставить в центр JPanel c нужным Layout. Но какой Layout нужен непонятно, потому что непонятно как нужно размещать "столбики".
Например:
GridLayout разместит их в сетку, выделив каждому одинаковую площадь.
GridBagLayout позволит разместить их как угодно
PM   Вверх
aromanu
Дата 4.6.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Цитата

Но какой Layout нужен непонятно, потому что непонятно как нужно размещать "столбики".

"столбики" нужно размещать по следующему принципу:
Рисуем первую строку "столбиков", а во второй строке "столбики" могут начинаться только там где кончается предыдущий, то есть они располагаются один над другим и тот "столбик", который на верху начинается там, где заканчивается нижний(высота нижнего). 
Поэтому я думаю, что подойдет GridBagLayout. А как это реализовать?
PM MAIL   Вверх
aromanu
Дата 4.6.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Вставил в JFrame JPanel и попробовал вставить компонент. Ничего не вышло, он его не рисует.
Код

package javaapplication;
/**
 *
 * @author roman
 */
import java.awt.*; //базовый пакет для работы с графическим интерфейсом
//import java.awt.geom.Ellipse2D; //операции двумерной геометрии для awt
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
//import sun.java2d.loops.DrawPolygons;

class myFrame extends JFrame { //JFrame - контейнер для GUI интерфейса
    public JPanel myJPanel = new JPanel();
    private Dimension screenSize; //закрытое поле члена класса myFrame
    myFrame() {
        Toolkit kit = Toolkit.getDefaultToolkit(); //getDefaultToolkit - статический метод класса Toolkit (содержит методы, предназначенные для
                                                   //взаимодействия с оконной системой конкретной платформы)
        screenSize = kit.getScreenSize(); //Dimension - размер
        setLocation(screenSize.width/2, 0); //метод устан. коорд. контейнера
        setSize(screenSize.width/2, screenSize.height); //метод устан. размер окна
        setLocationByPlatform(true);
        setTitle("java sample");
        toFront(); //метод выводит окно фрейма на передний план
        add(myJPanel);
    }
    public int getScreenSizeX() { //метод-акцессор возвращает ширину контейнера
        return screenSize.width;
    }
    public int getScreenSizeY() { //метод-акцессор возвращает высоту контейнера
        return screenSize.height;
    }
}

class myPolygon extends Polygon { //суперклассом объекта myPolygon является класс Polygon
    private int x; //защищенные поля данных
    private int y;
    myPolygon() { //конструктор суперкласса подкласса
        super();
    }
    myPolygon(int[] xPoints, int[] yPoints, int nPoints) { //полиморфный конструктор суперкласса подкласса
        super(xPoints, yPoints, nPoints);
    }
    public void myaddPoint(int x, int y, Polygon p) { //метод при инициализации координат точки производит запись в защищенные поля данных
        p.addPoint(x, y);                             //переменная суперкласса может ссылаться на объект подкласса
        this.x = x;
        this.y = y;
    }
    public int retX() { //метод-акцессор возвращает x-координату последней добавленной точки
        return x;
    }
    public int retY() { //метод-акцессор возвращает y-координату последней добавленной точки
        return y;
    }
}

class aloft extends JComponent { //класс "столбик"
    private int x; //координаты объекта "столбик" в пикселах
    private int y;
    private int height; //высота объекта "столбик" в пикселах
    static int scale; //масштаб объекта "столбик" в пикселах (член scale класса aloft может использоваться самостоятельно без ссылки на экз.)
    aloft(int x, int y, int height) { //конструктор aloft
        this.x = x;
        this.y = y;
        this.height = height;
    }
    public void saloft(int x, int y, int height) { //открытый метод переопределяет параметры объекта "столбик"
        this.x = x;
        this.y = y;
        this.height = height;
    }
    private void figure(Graphics2D g2, Polygon p, Color c) { //закрытый метод рисует залитый многоугольник
        g2.setColor(c); //цвет переднего плана
        g2.fillPolygon(p);
    }
    @Override //переопределение реализации суперкласса
    public void paintComponent(Graphics g) { //перегруженный открытый метод тип его аргумента - абстрактный класс Graphics
        super.paintComponent(g); //вызов конструктора суперкласса
        Graphics2D g2 = (Graphics2D)g; //приведение типов
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //для гладких краев на рисунке
        Color c = Color.BLACK; //объект принимает цветовую константу класса Color
        myPolygon p = new myPolygon(); //drawPolygon(myPolygon p)
        p.myaddPoint(x, y, p);
        p.myaddPoint(p.retX() - scale, p.retY(), p);
        p.myaddPoint(p.retX(), p.retY() - height, p);
        p.myaddPoint(p.retX() + scale, p.retY(), p);
        figure(g2, p, c); //лицевая сторона
        c = Color.GREEN;
        p.reset(); //деактивация полей класса Polygon
        p.myaddPoint(x, y, p);
        p.myaddPoint(p.retX(), p.retY() - height, p);
        p.myaddPoint(p.retX() + scale, p.retY() - scale, p);
        p.myaddPoint(p.retX(), p.retY() + height, p);
        figure(g2, p, c);
        c = Color.RED;
        p.reset(); //деактивация полей класса Polygon
        p.myaddPoint(x, y - height, p);
        p.myaddPoint(p.retX() - scale, p.retY(), p);
        p.myaddPoint(p.retX() + scale, p.retY() - scale, p);
        p.myaddPoint(p.retX() + scale, p.retY(), p);
        figure(g2, p, c);
    }
    static { //блок инициализации переменных типа static
        scale = 5;
    }
}
    
public class Main {
    public static void main(String[] args) {
        final myFrame f = new myFrame(); //этот объект не может быть суперклассом
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //реакция на закрытие фрейма (в данном случае программа завершает работу)
        f.setVisible(true); //установка видимости фрейма

        int h = 10;
        //for(int x = aloft.scale; x <= (f.getScreenSizeX() - aloft.scale); x += aloft.scale) {
            aloft component = new aloft(150, 300, 100);
            aloft component2 = new aloft(10, 300, 100);
            //f.add(component);
            //component.saloft(20, 300, 100);
            //f.add(component2);
            //component.saloft(30, 300, 100);
            f.myJPanel.add(component2);
        //}
        System.out.println(f.getScreenSizeX() + " " + aloft.scale); ////////////////////////////////////////////////////
    }
}



Добавлено через 48 секунд
Изменения выделены желтым

PM MAIL   Вверх
aromanu
Дата 4.6.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Да кто нибудь может показать как во фрэйме разместить n-ое количество компонентов, которые являются наследниками класса JComponent smile 
PM MAIL   Вверх
Galaran
Дата 4.6.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.5.2009

Репутация: нет
Всего: 2



Можно размещать компоненты и без менеджера компоновки (произвольно, по координатам)

А именно:

Код

container.setLayout(null);
component.setLocation(x, y);
container.add(component);


PM MAIL   Вверх
aromanu
Дата 4.6.2009, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.6.2009

Репутация: нет
Всего: нет



Все сделал как вы сказали - безрезультатно.
Код

package javaapplication;
/**
 *
 * @author roman
 */
import java.awt.*; //базовый пакет для работы с графическим интерфейсом
import javax.swing.JComponent;
import javax.swing.JFrame;
//import javax.swing.JPanel;
class myFrame extends JFrame { //JFrame - контейнер для GUI интерфейса
    public Container myContainer = new Container();
    private Dimension screenSize; //закрытое поле члена класса myFrame
    myFrame() {
        Toolkit kit = Toolkit.getDefaultToolkit(); //getDefaultToolkit - статический метод класса Toolkit (содержит методы, предназначенные для
                                                   //взаимодействия с оконной системой конкретной платформы)
        screenSize = kit.getScreenSize(); //Dimension - размер
        setLocation(screenSize.width/2, 0); //метод устан. коорд. контейнера
        setSize(screenSize.width/2, screenSize.height); //метод устан. размер окна
        setLocationByPlatform(true);
        setTitle("java sample");
        toFront(); //метод выводит окно фрейма на передний план
        myContainer.setLayout(null);
        add(myContainer);
    }
    public int getScreenSizeX() { //метод-акцессор возвращает ширину контейнера
        return screenSize.width;
    }
    public int getScreenSizeY() { //метод-акцессор возвращает высоту контейнера
        return screenSize.height;
    }
}
class myPolygon extends Polygon { //суперклассом объекта myPolygon является класс Polygon
    private int x; //защищенные поля данных
    private int y;
    myPolygon() { //конструктор суперкласса подкласса
        super();
    }
    myPolygon(int[] xPoints, int[] yPoints, int nPoints) { //полиморфный конструктор суперкласса подкласса
        super(xPoints, yPoints, nPoints);
    }
    public void myaddPoint(int x, int y, Polygon p) { //метод при инициализации координат точки производит запись в защищенные поля данных
        p.addPoint(x, y);                             //переменная суперкласса может ссылаться на объект подкласса
        this.x = x;
        this.y = y;
    }
    public int retX() { //метод-акцессор возвращает x-координату последней добавленной точки
        return x;
    }
    public int retY() { //метод-акцессор возвращает y-координату последней добавленной точки
        return y;
    }
}
class aloft extends JComponent { //класс "столбик"
    private int x; //координаты объекта "столбик" в пикселах
    private int y;
    private int height; //высота объекта "столбик" в пикселах
    static int scale; //масштаб объекта "столбик" в пикселах (член scale класса aloft может использоваться самостоятельно без ссылки на экз.)
    aloft(int x, int y, int height) { //конструктор aloft
        this.x = x;
        this.y = y;
        this.height = height;
    }
    public void saloft(int x, int y, int height) { //открытый метод переопределяет параметры объекта "столбик"
        this.x = x;
        this.y = y;
        this.height = height;
    }
    private void figure(Graphics2D g2, Polygon p, Color c) { //закрытый метод рисует залитый многоугольник
        g2.setColor(c); //цвет переднего плана
        g2.fillPolygon(p);
    }
    @Override //переопределение реализации суперкласса
    public void paintComponent(Graphics g) { //перегруженный открытый метод тип его аргумента - абстрактный класс Graphics
        super.paintComponent(g); //вызов конструктора суперкласса
        Graphics2D g2 = (Graphics2D)g; //приведение типов
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //для гладких краев на рисунке
        Color c = Color.BLACK; //объект принимает цветовую константу класса Color
        myPolygon p = new myPolygon(); //drawPolygon(myPolygon p)
        p.myaddPoint(x, y, p);
        p.myaddPoint(p.retX() - scale, p.retY(), p);
        p.myaddPoint(p.retX(), p.retY() - height, p);
        p.myaddPoint(p.retX() + scale, p.retY(), p);
        figure(g2, p, c); //лицевая сторона
        c = Color.GREEN;
        p.reset(); //деактивация полей класса Polygon
        p.myaddPoint(x, y, p);
        p.myaddPoint(p.retX(), p.retY() - height, p);
        p.myaddPoint(p.retX() + scale, p.retY() - scale, p);
        p.myaddPoint(p.retX(), p.retY() + height, p);
        figure(g2, p, c);
        c = Color.RED;
        p.reset(); //деактивация полей класса Polygon
        p.myaddPoint(x, y - height, p);
        p.myaddPoint(p.retX() - scale, p.retY(), p);
        p.myaddPoint(p.retX() + scale, p.retY() - scale, p);
        p.myaddPoint(p.retX() + scale, p.retY(), p);
        figure(g2, p, c);
    }
    static { //блок инициализации переменных типа static
        scale = 5;
    }
}

public class Main {
    public static void main(String[] args) {
        final myFrame f = new myFrame(); //этот объект не может быть суперклассом
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //реакция на закрытие фрейма (в данном случае программа завершает работу)
        f.setVisible(true); //установка видимости фрейма
        int h = 10;
        //for(int x = aloft.scale; x <= (f.getScreenSizeX() - aloft.scale); x += aloft.scale) {
            aloft component = new aloft(150, 300, 100);
            //aloft component2 = new aloft(10, 300, 100);
            f.add(component);
            component.saloft(20, 300, 100);
            f.myContainer.setLocation(0, f.getScreenSizeY());
            f.myContainer.add(component);
            //component.saloft(30, 300, 100);
            
        //}
        System.out.println(f.getScreenSizeX() + " " + aloft.scale); ////////////////////////////////////////////////////
    }
}

PM MAIL   Вверх
math64
Дата 5.6.2009, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 5
Всего: 72



Наверно,лучше сделать Aloft иконкой:
Код

class Aloft implements Icon {
   ...
}
class Surface extends JComponent {
   int n, m;
   int x0, y0, dx, dx2, dy;
   Aloft[][] alofts;
   public Surface(int n, int m) {
     this.n = n;
     this.m = m;
     alofts = new Aloft[n][m];
     for(int i =0; i < n; i++)
       for(int j = 0; j < m; j++)
         alofts[i][j] = new Aloft();
     x0 = ...;
     y0 = ...;
     dx = ...;
     dx2 = ...;
     dy = ...;
   }
   public void paintComponent(Graphics g) {
     for(int i =0; i < n; i++)
       for(int j = 0; j < m; j++) {
         x = x0 + i * dx + j * dx2;
         y = y0 + j * dy;
         alofts[i][j].paintIcon(this, g, x, y);
       }
   }
   ...
}

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.