Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Заблокирован

Пример из книги Корнелла

06.08.2013, 00:33. Показов 937. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот листинг из книги Хорстманн К. Корнелл Г. java 2. Том 1 - Основы.

bad listing
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import java.awt.EventQueue;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
 
/*
 * This program should be show images
 * */
 
public class ImageViewer {
 
    public static void main (String[] args) {
 
        EventQueue.invokeLater(new Runnable()
        {
            public void run() {
 
                JFrame frame = new ImageViewerFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}
 
/*
 * frame with text marker for output image
 * */
 
class ImageViewerFrame extends JFrame {
 
    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 400;
    private JLabel label;
    private JFileChooser chooser;
 
    public ImageViewerFrame() {
 
        setTitle ("ImageViewer");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
 
        // use label for output image
        label = new JLabel();
        add(label);
 
        // dialog windows for choose files
        chooser = new JFileChooser();
        chooser.setCurrentDirectory(new File("."));
 
        // create menu bar
        JMenuBar menuBar = new JMenuBar();
        setJMenuBar(menuBar);
 
        JMenu menu = new JMenu("File");
        menuBar.add(menu);
 
        JMenuItem openItem = new JMenuItem("Open");
        menu.add(menu);
        openItem.addActionListener(new ActionListener() {
 
            public void actionPerformed(ActionEvent event) {
                // TODO Auto-generated method stub
 
                //show dialog windows
                int result = chooser.showOpenDialog(null);
 
                //if enjoy file, created it icon for label
                if (result == JFileChooser.APPROVE_OPTION) {
 
                    String name = chooser.getSelectedFile().getPath();
                    label.setIcon(new ImageIcon(name));
                }
            }
        });
 
        JMenuItem exitItem = new JMenuItem("Exit");
        menu.add(exitItem);
 
        exitItem.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
 
                System.exit(0);
            }
        });
    }
}

В таком варианте не появляется строка меню. Нашла в сети правильный пример
good listing
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/**
   @version 1.21 2002-06-19
   @author Cay Horstmann
*/
 
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
 
/**
   A program for viewing images.
*/
public class ImageViewer
{
   public static void main(String[] args)
   {
      JFrame frame = new ImageViewerFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);   
   }
}
 
/**
   A frame with a label to show an image.
*/
class ImageViewerFrame extends JFrame
{
   public ImageViewerFrame()
   {
      setTitle("ImageViewer");
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
 
      // use a label to display the images
      label = new JLabel();
      Container contentPane = getContentPane();
      contentPane.add(label);
 
      // set up the file chooser
      chooser = new JFileChooser();
      chooser.setCurrentDirectory(new File("."));
 
      // set up the menu bar
      JMenuBar menuBar = new JMenuBar();
      setJMenuBar(menuBar);
 
      JMenu menu = new JMenu("File");
      menuBar.add(menu);
 
      JMenuItem openItem = new JMenuItem("Open");
      menu.add(openItem);
      openItem.addActionListener(new
         ActionListener()
         {
            public void actionPerformed(ActionEvent evt)
            {
               // show file chooser dialog
               int r = chooser.showOpenDialog(null);
 
               // if file selected, set it as icon of the label
               if(r == JFileChooser.APPROVE_OPTION)
               {
                  String name
                     = chooser.getSelectedFile().getPath();
                  label.setIcon(new ImageIcon(name));
               }
            }
         });
 
      JMenuItem exitItem = new JMenuItem("Exit");
      menu.add(exitItem);
      exitItem.addActionListener(new
         ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               System.exit(0);
            }
         });
   }
 
   private JLabel label;
   private JFileChooser chooser;
   private static final int DEFAULT_WIDTH = 300;
   private static final int DEFAULT_HEIGHT = 400;
}

В таком виде работает как положено. Ошибка в книге или какие-то неизвестные трюки а ля "сделай сам". Что задумано в первом варианте и почему оно не работает как должно?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.08.2013, 00:33
Ответы с готовыми решениями:

Пример из Книги Б.Эккеля (не могу разобраться)
Только начал изучать язык по книге этого автора. Наткнулся на пример по параграфу switch, программа, генерирующая случайную букву и...

Пример из книги Шилда неправильно работает
Доброго дня разбираю книгу Java8 полное руководство 9-е издание Герберта Шилда на 303 странице есть код примера синхронизации потоков....

Synchronized. Не работает пример из книги Шилдта «Java. Полное руководство»
Я нашёл ошибку в книге Герберта Шилдта «Java. Полное руководство». Это не задача из книги. Это опячатка. Там при описании синхронизации...

1
 Аватар для Gibby
154 / 154 / 10
Регистрация: 16.10.2012
Сообщений: 354
Записей в блоге: 1
06.08.2013, 12:35
Ошибка в строке 58.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.08.2013, 12:35
Помогаю со студенческими работами здесь

пример из книги
#include <iostream.h> long summa (int k,...){ int *pik=&k; char *pc=(char *)pik; cout <<" *pc="<<*pc<<"...

Пример из книги
В учебнике Флэнагана написано, что типа можно использовать символы Юникода из других категорий, помимо ASCII, при условии, что они не...

Пример из книги
Пытаюсь разобрать примеры из книги Харрингтона "PHP-трюки". Трюк 3 (стр.46) Все более-менее понятно. Кроме одного фрагмента. ...

Пример из книги
пишет что char* str1 должен быть константный но тогда я не смогу менять его в функции, пример точь в точь как в книге // copystr.cpp ...

| и || (Пример из книги)
Отрывок программы, где идет перегрузка оператора |. Истина - если хотя бы одна из координат !=0. А Ложь, если все все =0. class ThreeD...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru