Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
Java Десктоп аппликации
прегледано:  4956
 вкупно гласови:  2
 средна оценка:  5.0
 коментари:  17
Покрај тоа што Јава е супериорна технологија за Web аппликации, апликации за мобилни телефони, PDA уреди итн.,  исто така Јава технологијата е супериорна и на полето на Десктоп апликациите.

Воглавно има 3 Јава GUI пакети и  тоа се Abstract Window Toolkit (AWT), SWING и Standard Widget Toolkit (SWT).
Ние ќе се задржиме на AWT и SWING бидејќи SWT користи нативни методи, а и не е дел од Јава програмскиот јазик, тој се дистрибуира како посебен пакет.

Јава апликациите функционираат на сите релевантни оперативни системи, вклучувајќи ги тука Windows, Mac, Linux и Solaris.

GUI-to на Јава изгледа исто на сите оперативни системи, но исто така може и да емулира и  native look and feel зависно од оперативниот систем.

SWING  е еден од најкомплексните GUI frameworks било кога развиен, тој има комплетен сет на графички компоненти почнувајќи од текст полиња па се до табели.
SWING компонентите не зависат од нативните алатки на оператвниот систем туку тие  се исцртуваат употребувајќи примитивни графички методи како што се линии, квадрати и текст. Исто така исцртувањето на графиката не зависи од изгледот на оперативниот систем.

SWING архитектурата е направена по инспирација на Model-View-Controller (MVC).

Што се однесува до перфомансите на Јава десктоп апликациите, добро напишана Јава апликација има исти перфоманси како C++, тоа го има напишано на интернет милион пати, а и исто толку пати тестирано. Факт е дека од Јава верзија 1.4, па се до денешната Јава 6 има огромна разлика во брзината во позитивна смисла, денес корисниците можат да имаат повеќе апликации пуштени во исто време, можат да ги минимизираат или многу брзо да преминуваат од една на друга апликација.

Основен пример за декстоп апликација кај што ке има испишано еден текст:

/**
 *
 * @author  Sasho Lazarevski
 */

public class PrvaDesktopAplikacija extends javax.swing.JFrame {

    private javax.swing.JLabel jLabel1;


    public PrvaDesktopAplikacija() {
        initComponents();
    }

    private void initComponents() {
   
        jLabel1 = new javax.swing.JLabel();
   
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
   
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("МОЈА ПРВА ДЕСКТОП АПЛИКАЦИЈА");
        getContentPane().add(jLabel1);
   
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
                                       
        setBounds((screenSize.width-500)/2, (screenSize.height-300)/2, 500, 300);
        setVisible(true);
    }
       
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
          public void run() {
            new PrvaDesktopAplikacija();
          }
        });
    }
}

Да го објасниме кодот.

Класата PrvaDesktopAplikacija ja extendira JFrame класата, што и не е морално, а во повеќето случаи и подобро е да се направи инстанца од JFrame тоа ќе биде презентирано во наредниот пример.

Апликацијата почнува да се извршува од main методата која што мора да ја има во сите декстоп апликации барем еднаш за разлика од Web апликациите каде што main методата воопшто не се користи, потоа се иницијализираат компонентите и се испишува текстот на екранот.

Методата getContentPane() враќа Класа Container која што мора да ја имате ако сакате да додавате и бришете компоненти на екранот, со други зборови не можете директно да додавате компоненти на самиот JFrame бидејќи самиот тој е составен од повеќе слоеви (тие ке ги објасниме наредниот пат).

Класата Toolkit ја пресметува големината на екранот го подесува порозорот со димензии 500 на 300 и го поместува на средина од Мониторот.

И на крај „setVisible(true);“ го прави Прозорот видлив, ова е еден од најголемите пропусти  на почетниците кој што сакаат да развиваат Десктоп апликации.

Битно е да се спомене дека ако експлицитно немате наведено кој Layout Manager  ќе го користите по default  се користи BorderLayout  и во согласност со тој Layout Manager така се редат компонентите во контејнерот.
Тоа можете да го промените едноставно со „setLayout()“ методата.

Во долниот пример тоа би изгледало вака:

container.setLayout(new FlowLayout());


На почетокот споменавме дека подобро е да не се екстендира JFrame  класата сега тоа ќе го покажеме со пример како би изгледало.


import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 *
 * @author  Sasho Lazarevski
 */
public class VtoraDesktopAplikacija {
   
    private JLabel label;
    private JFrame frame;
   
    public VtoraDesktopAplikacija() {
        initComponents();
    }
   
    private void initComponents() {
   
        label = new JLabel();
        frame = new JFrame("наслов на прозор");
        frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
       
        label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        label.setText("МОЈА ВТОРА ДЕСКТОП АПЛИКАЦИЈА");
        Container container = frame.getContentPane();
        container.add(label);
       
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setBounds((screenSize.width - 500) / 2, (screenSize.height - 300) / 2, 500, 300);
        frame.setVisible(true);
    }
   
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
   
          @Override
          public void run() {
                new VtoraDesktopAplikacija();
          }
        });
    }
}


Наредниот пат ќе ви покажеме пример како да ги прелистувате слоевите на JFrame класата, исто така ќе ви покажеме како да го избегнете различното рендерирање на фонтови во Windows и во Linux, а со тоа да апликацијата да ви изгледа идентично на сите оперативни системи. Исто така ќе има и примери како да додавате настани (Events) на компонентите и што се „Layout Managers“  и како се користат.
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


напишал: Анонимус (30.05.2008 14:35:05)
Закон фала многу
напишал: Анонимус (23.06.2008 23:16:17)
На кој јазик е ова?

Го пастирав у Visual Studioto кај мене и милион грешки ми даде.
New Windows Application (C#) му стаив, не знам што е проблемов.

Треба и за тоа да обрнете внимание малце, не само код да нафрлате тукутака.
напишал: igor (18.07.2008 08:43:36)
Доколку не примети, а гледам Сашо испуштил да дополни, се работи за Свахили јазикот, кој моментално не е поддржан од MS Visual Studio 2005, но со Service Pack 5.1 ќе биде поддржан од MS Visual Studio 2008.

Мислам, Сашо, друг пат те молам не прави вакви грешки и секогаш кога ќе постираш текст на JAVA.com.mk стави прибелешка кој јазик го користиш.

Поздрав
напишал: Анонимус (08.05.2010 11:00:56)
loL, дечко да не си грешка малку. Кај најде java во VS да работиш. Пробај со NetBeans, Eclipse.
напишал: Анонимус (22.07.2008 18:29:37)
Да, Свахили јазик, на Угубунгу Ухахаа дијалектот кој се зборува само во западниот дел на реката, само од машките жирафи пред да заврне снег во мај. Поддршката ќе биде во следниот windows patch. Кој прв ќе ја добие од Бил Гејтс за Нова Година во август, нека ја препрати на сите. Баш би сакал да ја имам.

Поздрав
Ѕвонко
напишал: Анонимус (24.07.2008 18:08:08)
Strasna rabota
напишал: Анонимус (18.08.2008 16:41:54)
Не е за туториалот, насловот на секој коментар е убаво да биде линк кон коментарот за да може да се линка од надвор кога веќе секој коментар има name тагови.

tag
напишал: igor (18.08.2008 23:56:11)
Ете, ако ти беше тоа идејата, средено ;)
напишал: Анонимус (03.10.2008 12:27:39)
Дечки ве читам и се чудам како прашувате глупави прашања. Се гледа дека програмскиот јазик е Java, ако навистина не можевте да го препознаете тогаш прво запознајте се се неговата архитектура. Инаку, не ве гледам како идни програмери воопшто. Поздрав
напишал: Анонимус (04.02.2009 02:53:19)
Epten si u pravo. Java e sto drugo. Navistina lici na C++ ili C# ali toa e samo sintaksata. E sega ne se slozuvam so toa sto editorot napisal deka dobro napisana programa na Java e isto tolku brza i efektivna kako i na C++. Navistina ima razlika. Eve malku ke pojasnam. Prednosta na Java programite e toa sto ednas napisani, rabotat sekade. Vo C++ ne e taka sekoja programa bi rabotela dobro vo zavisnost od tipot na procesor za koj sto e kompajlirana. E sega od ovde moze da se uoci slednoto. Programite vo Java se kompilirat vo pcevdokot i soodvetno im e potrebno java run time, za start, dodeka kaj C++ programite ne e taka. Pa ot tuka i pogolemata brzina vo ispolnuvanje na izvornata programa. Kako i da e java se zasnova vrz principite na nejziniot tatko, toest C++. Se nadevam editorot nema da se razluti na ovoj komentar i ke go objavi. Vo sekoj slucaj java e eden super programski jazik.
напишал: Анонимус (20.02.2009 00:46:43)
Ej g-n editor. Pustiv 10 komentari, kaj se. Ili toa sto ti odgovara. Ne moj taka ti se molam. Ima i drugi Java programeri tuka :)
напишал: igor (21.02.2009 01:27:31)
Моја препорака ти е да се регистрираш, и тогаш коментарите ќе одат веднаш во етер, нема да чекаат на админ.
напишал: Анонимус (10.03.2009 18:34:28)
Многу добро :) имав предмет ооп и учевме Јава ама не ни покажаа вака туку само со конзола и заради тоа, а и заради тоа што немаше .ехе мразев јава (не знаев што со .class). Сега очигледно ќе се премислам :)
напишал: vanco2001 (12.09.2009 17:52:39)
Navistina nema .exe, no pak lesno se povrzuva java preprocesorot so klasot. Treba da napravis bat izvrsen fajl. Da receme otidi vo nekoj tekst editor i napisi go slednovo

java ime_na_class.class, i snimi go kako ime_na_fajl.bat, i toa e. Pred toa JVM mora da ti bide namesten kako sto treba, odnosno Environment variables mora da bida setirani vo ...java/bin direktoriumot. Se nadevam znaes na sto mislam. pozdrav
напишал: Анонимус (15.11.2009 12:39:22)
во принцип целиот проект ќе ти биде спакуван во .jar фајл, така со дупли клик ќе се стартува апликацијата без проблем, плус имаш на интернет еден куп софтвер што креираат .exe од .jar и тоа не е проблем.
напишал: Анонимус (13.09.2009 23:02:39)
hello i am friend barkat ali city msila algrria thank you on program nice nice beautiful
напишал: Анонимус (18.12.2010 14:43:46)
decki me interesira od kaj mozam da go spustam gui i kako da go instaliram daj te mi tuturial nekoj ili link falavi odnapred
пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2017 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.