Главна функција дијалошког оквира је да апликација или веб локација преузме неки унос од корисника. Тај унос може бити потврда да су прочитали поруку или нешто што уносе у област за текст.

Оквир за дијалог одмах привлачи пажњу корисника. То је савршен алат за прикупљање или приказивање важних информација.

Јава је разнолик језик који пружа неколико класа за креирање дијалошких оквира. Ове класе укључују ЈОптионПане, ЈДиалог и ЈФраме.

Класа ЈОптионПане

Можете креирати стандардни оквир за дијалог користећи једну од неколико статичких метода које припадају класи ЈОптионПане. Ови укључују:

  • сховМессагеДиалог(), који преноси поруку кориснику.
  • сховЦонфирмДиалог(), који поставља питање које захтева потврду.
  • сховИнпутДиалог(), који од корисника тражи унос.
  • сховОптионДиалог(), што је комбинација три друге методе.

Креирање оквира за дијалог ЈОптионПане

увоз јавак.свинг. ЈФраме;
увоз јавак.свинг. ЈОптионПане;

јавностикласаЈОптионПанеАпп{
ЈОптионПанеАпп() {
ЈФраме оквир = Нова ЈФраме();
ЈОптионПане.сховМессагеДиалог (оквир, "Ово је прозор поруке ЈОптионПане.");
}

јавностистатичнапразнинаглавни(Стринг[] аргументи){
Нова ЈОптионПанеАпп();
}
}

Горњи код креира следећи оквир за дијалог:

Иако ЈОптионПане пружа стандардне оквире за дијалог, има много опција које вам омогућавају да прилагодите његово понашање. На пример, дијалог поруке може имати један од неколико типова. Онај изнад је пример једног ИНФОРМАТИОН_МЕССАГЕ, што је подразумевано. Други типови порука су:

  • ПОРУКА О ГРЕШЦИ
  • ВАРНИНГ_МЕССАГЕ
  • КУЕСТИОН_МЕССАГЕ
  • ПЛАИН_МЕССАГЕ

Креирање поруке о грешци

Ево примера како да користите другачији тип поруке за ваш ЈОптионПане дијалог:

ЈОптионПане.сховМессагеДиалог (оквир, "Ово је прозор поруке о грешци ЈОптионПане.",
„Грешка“, ЈОптионПане. ПОРУКА О ГРЕШЦИ);

Заменити сховМессагеДиалог() линију у оригиналном програму са горњом линијом кода и видећете следећи дијалог о грешци:

Класа ЈДиалог

Класа ЈДиалог вам омогућава да креирате прилагођене оквире за дијалог. Ово Јава класа припада у јавак.свинг пакет и проширује класу Диалог. Има приступ широком спектру директних и индиректних метода. Ова Јава класа има укупно 16 Јава конструктори.

Осим подразумеваног конструктора, сваки од осталих 15 узима оквир, прозор или дијалог са комбинацијом неколико других аргумената.

Примарни ЈДиалог конструктори укључују:

  • ЈДиалог() креира оквир за дијалог без оквира, наслова или режима.
  • ЈДиалог (власник дијалога, наслов стринга, логички модални) креира дијалог са власником дијалога, насловом стринга и режимом.
  • ЈДиалог (власник оквира, наслов стринга, логички модални) креира оквир за дијалог са власником оквира, насловом стринга и режимом.
  • ЈДиалог (власник прозора, наслов стринга, логички модални) креира оквир за дијалог са власником прозора, насловом стринга и режимом.

Креирање ЈДиалог оквира за дијалог

увоз јава.авт. ФловЛаиоут;
увоз јава.авт.евент. АцтионЕвент;
увоз јава.авт.евент. АцтионЛистенер;
увоз јавак.свинг. ЈБуттон;
увоз јавак.свинг. ЈДиалог;
увоз јавак.свинг. ЈФраме;
увоз јавак.свинг. ЈЛабел;
увоз јавак.свинг. ВиндовЦонстантс;

јавностикласаЈДиалогАпп{
ЈДиалогАпп() {
ЈФраме оквир = Нова ЈФраме();
ЈДиалог дијалог = Нова ЈДиалог (оквир, истина);
диалог.сетЛаиоут(Нова ФловЛаиоут());

ЈЛабел дисплаиТект = Нова ЈЛабел("Ово је ЈДиалог прозор.");
ЈБуттон бтн = Нова ЈБуттон("ОК");

бтн.аддАцтионЛистенер(Нова АцтионЛистенер() {
јавностипразнинаацтионПерформед(АцтионЕвент е){
диалог.сетВисибле(лажно);
}
});

диалог.адд (дисплаиТект);
диалог.адд (бтн);

диалог.сетСизе(200,150);
диалог.сетТитле("Диалог Виндов");
диалог.сетВисибле(истина);
диалог.сетДефаултЦлосеОператион (ВиндовЦонстантс. ДИСПОСЕ_ОН_ЦЛОСЕ);
}

јавностистатичнапразнинаглавни(Стринг аргс[]){
Нова ЈДиалогАпп();
}
}

Горњи код креира следећи оквир за дијалог:

Постоји неколико важних аспеката кода које треба да приметите. Програм користи ЈДиалог (власник оквира, логички модални) конструктор, на који прелази а ЈФраме и „праву“ вредност као аргументе. ЈФраме је власник ЈДиалог-а, што значи да је одговоран за приказивање оквира за дијалог. Вредност „труе“ значи да дијалог блокира унос у друге повезане прозоре када се прикаже.

Конструктор у коду изнад не узима наслов као свој аргумент. Међутим, власнику оквира је потребан наслов. Дакле, за тај задатак можете користити сетТитле() метод, који је доступан преко Диалог класе коју ЈДиалог проширује. Друге важне методе у коду су сетВисибле(), сетСизе(), и сетДефаултЦлосеОператион().

сетВисибле узима Булову вредност и одговоран је за приказивање оквира. сетСизе узима висину и ширину прозора дијалога. сетДефаултЦлосеОператион узима једну од три вредности да одлучи шта ће се десити када корисник затвори дијалог.

Класа ЈФраме

ЈДиалог и ЈОптионПане користе класу ЈФраме за креирање дијалошких оквира. Међутим, класа ЈФраме може сама да креира дијалошке оквире. Класа ЈФраме проширује класу Фраме и, слично класи ЈДиалог, омогућава вам да креирате прилагођене оквире за дијалог.

ЈФраме има четири конструктора и неколико директних и индиректних метода које ћете морати да користите да бисте креирали оквир за дијалог.

Креирање ЈФраме оквира за дијалог

увоз јава.авт.евент. АцтионЕвент;
увоз јава.авт.евент. АцтионЛистенер;

увоз јавак.свинг. ЈБуттон;
увоз јавак.свинг. ЈФраме;
увоз јавак.свинг. ЈЛабел;
увоз јавак.свинг. ЈПанел;
увоз јавак.свинг. ВиндовЦонстантс;

јавностикласаЈФрамеАпп{
ЈФрамеАпп() {
ЈФраме оквир = Нова ЈФраме();
фраме.сетТитле("Диалог Виндов");
ЈПанел панел = Нова ЈПанел();

ЈЛабел дисплаиТект = Нова ЈЛабел("Ово је ЈФраме прозор.");
панел.адд (дисплаиТект);
ЈБуттон бтн = Нова ЈБуттон("ОК дугме");

бтн.аддАцтионЛистенер(Нова АцтионЛистенер() {
јавностипразнинаацтионПерформед(АцтионЕвент е){
фраме.сетВисибле(лажно);
}
});

панел.адд (бтн);

оквир.додај (панел);
фраме.сетДефаултЦлосеОператион (ВиндовЦонстантс. ЕКСИТ_ОН_ЦЛОСЕ);
фраме.сетСизе(250, 150);
фраме.сетВисибле(истина);
}

јавностистатичнапразнинаглавни(Стринг[] аргументи){
Нова ЈФрамеАпп();
}
}

Горњи код креира следећи оквир за дијалог:

Код користи подразумевани ЈФраме конструктор и неколико познатих метода, као што је сетТитле() метод (користи се у апликацији ЈДиалог изнад). Непознати објекат у горњем програму је ЈПанел, који је генерички контејнер. Ово даје ЈФраме-у флексибилност за додавање више распореда и компоненти у оквир.

Тхе АцтионЛистенер() и ацтионПерформед() методе обрађују догађај када корисник кликне на У реду дугме.

Која Јава класа је најбоља за креирање оквира за дијалог?

Једина сврха класе ЈОптионПане је да учини процес креирања оквира за дијалог погоднијим за Јава програмере. Међутим, ако вам је потребан прилагођенији оквир за дијалог, класа ЈДиалог је следећа најбоља опција.

Класа ЈФраме креира корисничке интерфејсе, али можете је користити за креирање много различитих елемената ГУИ, укључујући оквире за дијалог.

Оквир за дијалог креиран класом ЈФраме има минимизирану икону, док остали немају. Ако желите модални оквир за дијалог, који корисник мора да предузме пре него што заврши задатак, онда ЈФраме није најбољи приступ.

Како написати своју прву Јава ГУИ апликацију 

Реад Нект

ОбјавиТвеетОбјавиЕмаил

Повезане теме

  • Програмирање
  • Програмирање
  • Јава
  • Упутства за кодирање

О аутору

Кадеисха Кеан (56 објављених чланака)

Кадеисха Кеан је програмер комплетног софтвера и писац технике/технологије. Она има изразиту способност да поједностави неке од најсложенијих технолошких концепата; производећи материјал који може лако да разуме сваки почетник у технологији. Она је страствена у писању, развоју занимљивог софтвера и путовању светом (кроз документарне филмове).

Више од Кадеисхе Кеан

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили