A a = new A();
B b = new B();
a.setB(b);
// инициализирум поля и преобразовываем в JSON
...
// после парсинга из JSON
String bId = a.getB().getId();
public class PreviewServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// это ваше DAO
private PreviewService previewService = Fascade.getPreviewService();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/jpeg");
//парсим id картинки из запроса
int imageId = Integer.parseInt(request.getParameter("id"));
//Тут вы получаете Entity вашей картинки, одно из полей у которого является массивом байт
Preview preview = previewService.getByImageId(imageId);
byte[] bytes = preview.getBytes();
response.setContentLength((int) bytes.length);
// получаете поток для своих нужд
ServletOutputStream outStream = response.getOutputStream();
// отсылаете картинку на клиента
outStream.write(bytes);
// закрываете поток
outStream.close();
}
}
if(myedittext.getText().toString().equals(".")) {
// Действия
}
package application;
import java.awt.FileDialog;
import java.awt.Frame;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
// Тут необязательно наследоваться от JFrame
// Название класса должно отображать его предназаначение
public class BookReader {
// поля должны быть приватными
private FileDialog fileDialog;
private BookReaderCallback callback;
// Вложенный интерфейс обратного вызова
public interface BookReaderCallback {
// метод будет вызван, когда текстовый файл будет успешно прочитан до конца
void onReadComplete(String text);
}
// В конструктор передаем фрейм родителя
// не обязательно его инстанцировать в этом классе
public BookReader(Frame parent) {
fileDialog = new FileDialog(parent, "Select book", FileDialog.LOAD);
}
//А название метода должно отображать его действие или результат действия
public void readBook() {
// show() deprecated поэтому вызываем "setVisible"
fileDialog.setVisible(true);
if (fileDialog.getDirectory() == null || fileDialog.getFile() == null) {
return;
}
Scanner in = null;
String text = "";
try {
in = new Scanner(new File(fileDialog.getDirectory(),
fileDialog.getFile()));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while (in.hasNext()) {
text += in.nextLine() + "\n";
}
in.close();
// прочитали файл и теперь через обьект класса обраьтного вызова
//нотифицируем вызывающий класс о том что текст прочитан и передаем ему результат
if (callback != null) {
callback.onReadComplete(text);
}
}
//"ceттер" для экземпляра обратного вызова
public void setCallback(BookReaderCallback callback) {
this.callback = callback;
}
}
package application;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class JFrameCreator {
public static void main(String[] args) {
createGUI();
}
public static void createGUI() {
try {
UIManager.setLookAndFeel((LookAndFeel) Class.forName(UIManager.getCrossPlatformLookAndFeelClassName()).newInstance());
} catch (InstantiationException | IllegalAccessException| ClassNotFoundException | UnsupportedLookAndFeelException e) {
// Игнорируем
}
JPanel content = new JPanel(new FlowLayout());
// вместо Label для текста стоит бы использовать TextArea(Label - для короткого однострочного текста),
JTextArea textArea = new JTextArea();
textArea.setText("Пока пусто...");
Button btnOpenFileDialog = new Button("Browse");
content.add(btnOpenFileDialog);
content.add(textArea);
JFrame frame = new JFrame("LIBRARY");
frame.setContentPane(content);
frame.setPreferredSize(new Dimension(300, 200));
frame.pack();
// центрируем относительно экрана
frame.setLocationRelativeTo(null);
// навешиваем слушатель на кнопку
// это плохой пример, скорее всего нужно навесить KeyListener, но лень имплементировать три метода
btnOpenFileDialog.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// создаем обьект BookReader
BookReader bookReader = new BookReader(frame);
// передаем ему экземпляр BookReaderCallback в виде анонимного класса
bookReader.setCallback(new BookReader.BookReaderCallback() {
// метод будет вызван из класса BookReader как только файл будет прочитан
@Override
public void onReadComplete(String text) {
// меняем текст в Label
textArea.setText(text);
}
});
// запускаем "читалку" :)
bookReader.readBook();
}
});
frame.setVisible(true);
}
}