1 (19.09.2010 19:47:16 отредактировано mycetophylax)

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

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();
    }
    }

2

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

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

3

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

4

Очень хороший ресурс  wink  Конечно, если уже есть базовые знания.

5 (20.09.2010 21:09:33 отредактировано gws12011990)

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

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) {}

}

6

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

7

private final Object saveAs;

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

gws12011990 пишет:

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

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