Вопросы по Java

  • Автор теми Автор теми Garilla
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 29.07.2009
Повідом.: 50
Вопросы по Java

Здравствуйте!
Начал осваивать Java по разным книгам / видеокурсам / программам и при освоении полезли баги и вопросы как тараканы )) Гуглить пытаюсь, но пока опыта немного, особенно того, что касается отладки прог.
Если не в лом, может кто по доброте душевной подскажет решение такого вопроса

"3. При реализации графического интерфейса для приложения копирования файлов имя копируемого файла и имя конечной директории выбирается через JFileChooser, прописывается в соответствующем JTextField и выводиться на экран. Выбран менеджер расположения GridLayout(2,3) на главном окне BorderLayout. У меня вопрос - как возможно сделать так, чтобы поле JTextField изменялось бы в зависимости от значения, полученного через chooser1.getSelectedFile().getPath() (ну максимум ограничить максимальное значение тока, если string > = 50? то тода пусть будет 50 например)

Закрыто - "1. из апплета необходимо делаю самостоятельное приложение, поэтому я добавил метод
public static void main(String[] args)
TicTacToe2 gameOn = new TicTacToe2();
gameOn.init();"

при этом выдает Exception in thread "main" java.lang.NullPointerException
at demo.TicTacToe2.init(TicTacToe2.java:34)
at demo.TicTacToe2.main(TicTacToe2.java:300)

Закрыто - "2. при выполнении выдает ворнинг на методе getLabel
"The method getLabel() from the type AbstractButton is deprecated" но прога компилицца. Метод вызывается на объекте JButton. я так понимаю, JVM хочет, что бы был переопределен метод, но я же не создавал объект AbstractButton? Как решить этот вопрос? Не хотелось бы писать код с ворнингами ...
 

Вкладення

  • 1.webp
    1.webp
    4.8 КБ · Перегляди: 77
Останнє редагування:
1
на хрена тебе аплеты кто ща их пользует
2. deprecated значит устаревший метод. переопределение тут ни при чем
просто следует найти замену
 
да в качестве тренировки ))), к тому же разве их в веб-дизайне не используют?
по 2 вопросу - спс, заменил getLabel на getText, прокатило)))
кстати ище один ворнинг остался "The serializable class TicTacToe does not declare a static final serialVersionUID field of type long" - я так понимаю можно исправить ситуевину вставкой "private static final long serialVersionUID = 1L;" зачем?
 
кстати ище один ворнинг остался "The serializable class TicTacToe does not declare a static final serialVersionUID field of type long" - я так понимаю можно исправить ситуевину вставкой "private static final long serialVersionUID = 1L;" зачем?

⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
все описано
 
спс, джавадоки я пютаюсь читать, просто не все понятно, не привык, наверное ишо))) но все равно спс!!!
 
спс, джавадоки я пютаюсь читать, просто не все понятно, не привык, наверное ишо))) но все равно спс!!!

ты главное апплетами не увлекайся а почитай Johua Bloch. Effective Java и Брюс Эккель. Философия Java
 
"1. из апплета необходимо делаю самостоятельное приложение, поэтому я добавил метод
public static void main(String[] args)
TicTacToe2 gameOn = new TicTacToe2();
gameOn.init();"
...
at demo.TicTacToe2.init(TicTacToe2.java:34)

А самого интересного, то есть метод init(), строку 34 ты нам не показал :)

да в качестве тренировки ))), к тому же разве их в веб-дизайне не используют?

Первый раз такое слышу, хотя недавно видел сайт из 90ых с кнопками в виде апплетиков :D
 
1
на хрена тебе аплеты кто ща их пользует

Есть web-приложение, которому нужно знать какие есть у клиента принтеры (например, чтобы юзверь мог единожды настроить соответствие принтера отчету: типа платежки всякие отправляем на матричный принтер с рулоном бумаги, а договора - на лазерный). Ну и как без апплета это реализовать?
 
Есть web-приложение, которому нужно знать какие есть у клиента принтеры (например, чтобы юзверь мог единожды настроить соответствие принтера отчету: типа платежки всякие отправляем на матричный принтер с рулоном бумаги, а договора - на лазерный). Ну и как без апплета это реализовать?

а браузер с этим не справится? Или я чето недопонял...
 
а браузер с этим не справится? Или я чето недопонял...

Что значит не справится? Суть в том, что пользователь должен один раз указать на каком принтере печать отчет (а их много), а потом для всех отчетов есть тупо кнопка печать, по нажатию на которую web-приложение будет генерить отчет и сразу отправлять его на печать на конкретный принтер (которых у юзверя как минимум два) без всяких окошек настройки печати и выбора принтера.

Пример №2:
как из браузера распечатать pdf-файл, не имея Acrobat Reader и опять таки без всяких ********ий со сторонним софтом или браузерными плагинами?

Пример №3:
На клиенте (в браузере) юзверю нужно подписывать документы электронной подписью, для этого заказчик юзит либы (виндовые dll-ки) с реализацией алгоритмов подписывания от стороннего разработчика (при чем другие либы юзить нельзя). Как реализовать подпись на клиенте без апплета?



Пример №4:
Получить имя локального хоста, в смысле на котором клиент (именно на клиенте на случай того, если клиент сидит за анонимным прокси).
 
Останнє редагування:
А самого интересного, то есть метод init(), строку 34 ты нам не показал :)

Извиняюсь

package demo;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TicTacToe2 implements ActionListener {

JPanel mainPanel;
JButton squares[];
JButton newGameButton;
JLabel score;
JLabel winLabel;
JLabel tieLabel;
JLabel lostLabel;
int emptySquaresLeft = 9;
int kolOfWin = 0;
int kolOfLost = 0;
int kolOfTie = 0;

TicTacToe2 gameOn;

public void init() {

mainPanel.setLayout(new BorderLayout());
mainPanel.setBackground(Color.CYAN);
mainPanel.setFont(new Font("Monospased", Font.BOLD, 20));



:D понял, забыл создать экземпляр класса mainPanel
всем спасибо ;)



А что касается апплетов - недавно попал на сайт
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
, похоже там товарищ просто тащиться от их...
 
Останнє редагування:
Ну и как без апплета это реализовать?
Например ActiceX или Flash.
Но аплет не просто ява программа - он выполняется в браузере со всеми вытекающими ограничениями по доступу к машине клиента. Это же и флеша касается. Активх можно заставить работать но клиент может его не дать загрузить. Впрочем у клиента так же точно может не быть ява машины установленой.
 
Пример №2:
как из браузера распечатать pdf-файл, не имея Acrobat Reader и опять таки без всяких ********ий со сторонним софтом или браузерными плагинами?

Пример №3:
На клиенте (в браузере) юзверю нужно подписывать документы электронной подписью, для этого заказчик юзит либы (виндовые dll-ки) с реализацией алгоритмов подписывания от стороннего разработчика (при чем другие либы юзить нельзя). Как реализовать подпись на клиенте без апплета?



Пример №4:
Получить имя локального хоста, в смысле на котором клиент (именно на клиенте на случай того, если клиент сидит за анонимным прокси).

pdf при наличии плагина должен по идее как и html страницы печатать, остальные задачи через JS + ocx можно сделать
 
Еще один вопрос: какого х..а он пишет
"Cannot make a static reference to the non-static field myFile" тогда как ранее я создал экземпляр класса FileOutputStream - myFile , вызывал на нем метод write и все было чики-пики... на 34 строчке же эклипс напрочь перестает видеть переменную myFile, которая не статик(создана new). Выше подставляю - видит, сцуко...
 

Вкладення

  • str1.webp
    str1.webp
    42.6 КБ · Перегляди: 100
Еще один вопрос: какого х..а он пишет
"Cannot make a static reference to the non-static field myFile" тогда как ранее я создал экземпляр класса FileOutputStream - myFile , вызывал на нем метод write и все было чики-пики... на 34 строчке же эклипс напрочь перестает видеть переменную myFile, которая не статик(создана new). Выше подставляю - видит, сцуко...

ты почитал что я написал выше?
 
static reference to the non-static field myFile
Ты объявил в классе не-статическое поле myFile.
В статической функции main в блоке try{} создал переменную с тем же именем (что само по себе нехорошо), "закрыв" видимость переменной класса. Она доступна только в блоке try{}. В блоке finally{} ты уже обращаешься к не-статическому полю класса WriteToFile.myFile из статической функции main. Компилятор ругается.

Надо или так:
OutputStream writeToFile = null;
try{
open()...
}finally{
writeToFile.close();
}

Или в 7й джаве можно так:
try(OutputStream writeToFile = new ...(...)){
...
}
И при выходе из try{} метод закрытия вызовется автоматически.
 
Например ActiceX или Flash.
Но аплет не просто ява программа - он выполняется в браузере со всеми вытекающими ограничениями по доступу к машине клиента. Это же и флеша касается. Активх можно заставить работать но клиент может его не дать загрузить. Впрочем у клиента так же точно может не быть ява машины установленой.

Капитан очевидность. :D ActiveX в Firefox? Ну-ну. И чем же использование Flash принципиально отличается от использования апплета? В Java хоть секюрность получше будет, та же подпись апплетов. Более того, для flash нужен плагин, а jvm можно и удаленную юзить.

Например ActiceX или Flash.
Но аплет не просто ява программа - он выполняется в браузере со всеми вытекающими ограничениями по доступу к машине клиента. Это же и флеша касается. Активх можно заставить работать но клиент может его не дать загрузить. Впрочем у клиента так же точно может не быть ява машины установленой.

Капитан очевидность. :D ActiveX в Firefox? Ну-ну. И чем же использование Flash принципиально отличается от использования апплета?

pdf при наличии плагина должен по идее как и html страницы печатать, остальные задачи через JS + ocx можно сделать

Я говорил, без плагина. Во вторых, давай я тебе сервак подыму, который будет на get-запрос отдавать pdf, а ты сделай страничку, на которой будет кнопка, при клике на которую pdf-файл с сервака сразу же отправится на печать в принтер без каких либо диалогов и наличия плагина от Adobe.

остальные задачи через JS + ocx можно сделать

:рл: Ответ как бы выше.

З.Ы. У меня десктоп на линухе, что там про ocx?
 
Ну аплеты тебе врядли пригодятся, и скорее всего Swing тоже. Из своего опыта могу сказать, что наверное процентов 90% java девелоперов пишут код сервер сайда веб приложений.
Лучше заостри внимание на фундамент жавы j2se(колекции, обработка ошибок, ввод/вывод) и на такие фрейморки как Spring & Hibernate - это то, что щас очень широко используется.
 
Ну аплеты тебе врядли пригодятся, и скорее всего Swing тоже. Из своего опыта могу сказать, что наверное процентов 90% java девелоперов пишут код сервер сайда веб приложений.
Лучше заостри внимание на фундамент жавы j2se(колекции, обработка ошибок, ввод/вывод) и на такие фрейморки как Spring & Hibernate - это то, что щас очень широко используется.

Спасибо за совет!
 
Назад
Зверху Знизу