LinuxForum.Fans
Тема

Тестовая оболочка на JAVA

Автор: gws12011990 7 сообщений 3829 просмотров
#80361

Java программисты прошу помочь как повторить процесс выполнения теста! После ответа на первый вопрос программа заканчивается! А как спроектировать не понимаю!

text

import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class NewClass extends JFrame {
    public NewClass() {
        JComboBox tempChooseField = new JComboBox();
        tempChooseField.addItem("Клоун");
        tempChooseField.addItem("Делетант");
        tempChooseField.addItem("Друг Путина");
        tempChooseField.addItem("Вождь мирового пролетариата");
        JOptionPane pane = new JOptionPane(
                tempChooseField,
                JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
        JDialog dlg = pane.createDialog("Кто Ленин?");
        dlg.setVisible(true);
        dlg.dispose();
        dlg.setVisible(false);
        pane = null;
        dlg = null;
        
        if(tempChooseField.getSelectedIndex() == 3) {
            pane = new JOptionPane(
                    "Правильно!", JOptionPane.INFORMATION_MESSAGE);
            dlg = pane.createDialog("");
            dlg.setVisible(true);
            dlg.dispose();
        } else {
            pane = new JOptionPane(
                    "Ошибка!", JOptionPane.OK_OPTION);
            dlg = pane.createDialog("Ошибка!");
            dlg.setVisible(true);
            dlg.dispose();
        }
    }
    public static void main(String[] args) {
        new NewClass();
    }
    }
#81139

Самое первое, что пришло в голову - зачем "зашивать" текст вопросов и ответов в исходный код? Может воспользоваться базой данных? Для этой цели подойдет стандартная Derby (хотя бы embedded). Либо хранить их в файле, но это будет еще сложнее.

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

#81405

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

#81501

mycetophylax можешь посмотреть пожайлуста код, а то ошибка какая-то(если не трудно):
run:
Exception in thread "main" java.lang.UnsupportedOperationException: Not yet implemented
at javaapplication2.Scribble.enableEvent(MenuScribble.java:124)
at javaapplication2.Scribble.<init>(MenuScribble.java:87)
at javaapplication2.MenuScribble.<init>(MenuScribble.java:11)
at javaapplication2.MenuScribble.main(MenuScribble.java:76)
Java Result: 1

text

package javaapplication2; import java.awt.*; import java.awt.event.*; public class MenuScribble extends Frame { public MenuScribble (String s) { super(s); ScrollPane pane = new ScrollPane(); pane.setSize(300, 300); add(pane, BorderLayout.CENTER); Scribble scr = new Scribble(this, 500, 500); pane.add(scr); MenuBar mb = new MenuBar(); setMenuBar(mb); Menu f = new Menu("Fail"); Menu v = new Menu("Wid"); mb.add(v); mb.add(f); MenuItem open = new MenuItem("Open...", new MenuShortcut(KeyEvent.VK_0)); MenuItem save = new MenuItem("Save", new MenuShortcut(KeyEvent.VK_S)); MenuItem exit = new MenuItem("Exit", new MenuShortcut(KeyEvent.VK_Q)); f.add(open); f.add(save); f.add(exit); f.addSeparator(); open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(new Frame(), "Download", FileDialog.LOAD); fd.setVisible(true); } } ); save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ FileDialog fd = new FileDialog(new Frame(),"Save", FileDialog.SAVE); fd.setVisible(true); }

});

exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ System.exit(0); } } ); Menu c = Menu ("Color"); MenuItem clear = new MenuItem("Clear", new MenuShortcut(KeyEvent.VK_D)); v.add(c); v.add(clear); MenuItem red = new MenuItem("red"); MenuItem green = new MenuItem("green"); MenuItem blue = new MenuItem("blue"); MenuItem black = new MenuItem("black"); c.add(red);c.add(green);c.add(blue); c.add(black); red.addActionListener(scr); green.addActionListener(scr); blue.addActionListener(scr); black.addActionListener(scr); clear.addActionListener(scr); addWindowListener(new WinClose()); pack(); setVisible(true); } class WinClose extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0);

}

}

public static void main(String[] args) { new MenuScribble("Paint"); }

} class Scribble extends Component implements ActionListener, MouseListener,MouseMotionListener{ protected int lastX, lastY, w, h; protected Color currColor = Color.black; protected Frame f; public Scribble (Frame frame, int width,int height){ f=frame; w=width; h= height; enableEvent (AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK); addMouseListener(this); addMouseMotionListener(this); }

public Dimension getPreferredSize() { return new Dimension(w, h); } public void actionPerformed(ActionEvent event) { String s = event.getActionCommand(); if (s.equals("Clear")) repaint(); else if (s.equals("red")) currColor = Color.red; else if (s.equals("green")) currColor = Color.green; else if (s.equals("blue")) currColor = Color.blue; else if (s.equals("black")) currColor = Color.black; } public void mousePressed(MouseEvent e) { if ((e.getModifiers()& MouseEvent.BUTTON1_MASK) == 0) return; lastX = e.getX(); lastY = e.getY(); } public void mouseDragged (MouseEvent e){ if ((e.getModifiers() & MouseEvent.BUTTON1_MASK) == 0) return; Graphics g = getGraphics(); g.setColor(currColor); g.drawLine(lastX, lastY, e.getX(), e.getY()); lastX = e.getX(); lastY = e.getY(); } public void mouseReleased(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e ) {} public void mouseExited(MouseEvent e ) {} public void mouseMoved (MouseEvent e) {}

}

#81508

Всё сам разобрался в своих ошибках. Подскажите как сделать так, чтобы рисунок нарисованный не стирался после того как производишь какие- либо действия над окном программы (сворачиваешь или переносишь с места на место)!

#81516
text

private final Object saveAs;

Это т.н. "пустая" константа. Пустые константы должны обязательно инициализироваться в конструкторе, а если точнее, во всех конструкторах класса.
А вообще, эта константа у тебя нигде не используется.

gws12011990 написал:
Всё сам разобрался в своих ошибках. Подскажите как сделать так, чтобы рисунок нарисованный не стирался после того как производишь какие- либо действия над окном программы (сворачиваешь или переносишь с места на место)!

Сейчас ссылку тебе в личку отправлю на хорошую книгу по GUI. Она пока на народ заливается. wink

Войдите или зарегистрируйтесь, чтобы ответить.