Форум

Data.BG Форуми: Курсова работа на Java - JButtons,Buttons,брояч... - Data.BG Форуми

Прехвърляне към съдържание

Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

Курсова работа на Java - JButtons,Buttons,брояч...

#1
Потребителят е неактивен   somebodi 

  • Група: Потребители
  • Мнения: 2
  • Регистриран: 18-February 06
  • Репутация: 0
Здравейте, имам да правя курсова работа на Java с въпрос, радио бутони, два обикновенни бутона, проверка дали отговора е верен и брояч на верните отговори. Порграмата трябва да представлява следното:
1. Въпрос и под него 4-и радио бутона с отговори, от които един е верен;
2. Два бутона - "Next и Close". При натискане на "Next" се преминава към следващия въпрос, а с "Close" се затваря Frame-a;
3. Проверка дали отговора е верен или не;
4. Брояч за всеки верен отговор;

Успях да напаравя част от нещата, а именно:
1. Frame със бутоните "Next и Close" - с "Next" се отваря следващия прозорец, а с "Close" се затваря Frame-a. Но когато се отваря новия прозорец, предния не се затваря. Ето го и кода:


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class demo  {
static JFrame jf;

public static void main(String a[])
{
    JButton b=new JButton("NEXT");
    JButton b3=new JButton("CLOSE");
    b3.setBounds(50, 375, 250, 50);
    JPanel jp=new JPanel();
    jf=new JFrame();
    jf.setVisible(true);
    jf.setSize(400,400);
    jf.add(jp);
    jp.add(b);
    jp.add(b3);
          
    b3.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        System.exit(0);
    }
});
        b.addActionListener( new ActionListener(){
    	public void actionPerformed(ActionEvent e)
    {
     JButton b=new JButton("NEXT");
     JButton b3=new JButton("CLOSE");
     b3.setBounds(50, 375, 250, 50);
     JPanel jp=new JPanel();
     jf.setSize(400,400);
     jf=new JFrame(); 
     jf.setVisible(true);
     jf.add(jp);
     jp.add(b);
     jp.add(b3);
     
            b3.addActionListener(new ActionListener() {
    	    public void actionPerformed(ActionEvent e)
    	    {
    	        System.exit(0);
    	    }
    	});
            b.addActionListener( new ActionListener(){
    	    public void actionPerformed(ActionEvent e)
    	    {
    	     JButton b=new JButton("NEXT");
    	     JButton r=new JButton("CLOSE");
    	     b3.setBounds(50, 375, 250, 50);
    	     JPanel jp=new JPanel();
    	     JFrame f= new JFrame();
    	     f.setSize(400,400);
    	     jf=new JFrame(); 
    	     jf.setVisible(true);
    	     jf.add(jp);
    	     jp.add(b);
    	     jp.add(r);

    	     b3.addActionListener(new ActionListener() {
    	    	    public void actionPerformed(ActionEvent e)
    	    	    {
    	    	        System.exit(0);
    	    	    }
    	    	});
       	            b.addActionListener( new ActionListener(){
    	    	    public void actionPerformed(ActionEvent e)
    	    	    {
    	    	    	     JButton b=new JButton("NEXT");
    	        	     JButton r=new JButton("CLOSE");
    	        	     b3.setBounds(50, 375, 250, 50);
    	        	     JPanel jp=new JPanel();
    	        	     JFrame f= new JFrame();
    	        	     f.setSize(400,400);
    	        	     jf=new JFrame(); 
    	        	     jf.setVisible(true);
    	        	     jf.add(jp);
    	        	     jp.add(b);
    	        	     jp.add(r);
    	        	     
    	        	     b3.addActionListener(new ActionListener() {
    	        	    	    public void actionPerformed(ActionEvent e)
    	        	    	    {
    	        	    	        System.exit(0);
    	        	    	    }
    	        	    	});
    
    	    	     b.addActionListener( new ActionListener(){
    	    	    	    public void actionPerformed(ActionEvent e)
    	    	    	    {
    	    	     JButton b=new JButton("NEXT");
    	    	        	     JButton r=new JButton("CLOSE");
    	    	        	     b3.setBounds(50, 375, 250, 50);
    	    	        	     JPanel jp=new JPanel();
    	    	        	     JFrame f= new JFrame();
    	    	        	     f.setSize(400,400);
    	    	        	     jf=new JFrame(); 
    	    	        	     jf.setVisible(true);
    	    	        	     jf.add(jp);
    	    	        	     jp.add(b);
    	    	        	     jp.add(r);
     
    	    	        	     b3.addActionListener(new ActionListener() {
    	    	        	    	    public void actionPerformed(ActionEvent e)
    	    	        	    	    {
    	    	        	    	        System.exit(0);
    	    	        	    	    }
    	    	      	    	});
      }
    });
    }
    });
}
});
}
});
}
private static void dispose() {
	// TODO Auto-generated method stub
	}
}


2. Frame със въпрос и 4-и радио бутона, но само един, а трябва да са 10 и да се сменят:


import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;

import javax.swing.JFrame;
import javax.swing.JLabel;

import javax.swing.JRadioButton;

public class demo2 {
	static JFrame jf;

	public static void main(String a[]) {
		  
    // Some choices
    JRadioButton choice1, choice2, choice3, choice4;
    choice1 = new JRadioButton("int Sum(int a, int b = 2, int c = 3);");
    choice1.setActionCommand("false");
    choice2 = new JRadioButton("int Sum(int a = 5, int b);");
    choice2.setActionCommand("false");
    choice3 = new JRadioButton("int Sum(int a = 0, int b, int c = 3);");
    choice3.setActionCommand("false");
    choice4 = new JRadioButton("Both B and C are incorrect.");
    choice4.setActionCommand("true");

    // A group, to ensure that we only vote for one.
    final ButtonGroup group = new ButtonGroup();
    group.add(choice1);
    group.add(choice2);
    group.add(choice3);
    group.add(choice4);

    // A simple ActionListener, showing each selection using the ButtonModel
    class VoteActionListener implements ActionListener {
      public void actionPerformed(ActionEvent ev) {
        String choice = group.getSelection().getActionCommand();
        System.out.println("ACTION Choice Selected: " + choice);
      }
    }

    // A simple ItemListener, showing each selection and deselection
    class VoteItemListener implements ItemListener {
      public void itemStateChanged(ItemEvent ev) {
        boolean selected = (ev.getStateChange() == ItemEvent.SELECTED);
        AbstractButton button = (AbstractButton) ev.getItemSelectable();
        System.out.println("ITEM Choice Selected: " + selected
            + ", Selection: " + button.getActionCommand());
      }
    }

    // Add listeners to each button
    ActionListener alisten = new VoteActionListener();
    choice1.addActionListener(alisten);
    choice2.addActionListener(alisten);
    choice3.addActionListener(alisten);
    choice4.addActionListener(alisten);

    ItemListener ilisten = new VoteItemListener();
    choice1.addItemListener(ilisten);
    choice2.addItemListener(ilisten);
    choice3.addItemListener(ilisten);
    choice4.addItemListener(ilisten);

    // Throw everything together
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container c = frame.getContentPane();
    c.setLayout(new GridLayout(0, 1));
    c.add(new JLabel("Which of the following function declaration is/are incorrect?"));
    c.add(choice1);
    c.add(choice2);
    c.add(choice3);
    c.add(choice4);
    frame.pack();
    frame.setVisible(true);
   
    }
};


Трябва ми помощ за това как тези два класа да ги пусна в един Frame, как да се сменят въпросите при натискане на "Next" и как да направя брояч на верните отговори.

Благодаря предварително!

0

#2
Потребителят е неактивен   brigadier 

  • Група: Потребители
  • Мнения: 1101
  • Регистриран: 25-December 05
  • Репутация: 247
Цялата идея не я схванах, обаче като за начало:

- пиши класовете с главна буква за по- сигурно
- в demo се маха main метода и вместо него се слага конструктор
- пак там под jf.setSize(400,400); се добавя jf.setLocation(200, 300);
- в demo2 се добавя последен ред demo myDemo = new demo();

Това е за показване в отделни прозорци. Ако ще е на едно място , JPanel се добавя в друга клетка на GridLayout

Може да си дръпнеш суингдемото и да разгледаш какви варианти могат да се направят - http://dox.bg/files/dw?a=6a36e2c228
0

#3
Потребителят е неактивен   somebodi 

  • Група: Потребители
  • Мнения: 2
  • Регистриран: 18-February 06
  • Репутация: 0
Идеята е да се направи Frame с въпроси и 4-и отговора, след всеки посочен отговор с бутон да се преминава към следващия въпрос в същия Frame. За всеки верен тоговор трябва да има брояч и накрая да изкарва резултата.

А този суингдемо файл който си дал, има ли го на Английски език?
0

#4
Потребителят е неактивен   brigadier 

  • Група: Потребители
  • Мнения: 1101
  • Регистриран: 25-December 05
  • Репутация: 247
Това го намерих случайно на сайта на автора на една немска книжка. На английски не ми е попадало подобно.

Щом ще са на едно място, не виждам нужда от втори клас. Само че е по- добре с BorderLayout. Може да направиш една проба:

- правиш нов празен клас
- копираш с Ctl C кода на BorderLayout от демото и го слагаш в класа
- откоментираш другите панели и оставяш само южния и централния
- копираш кода на панела с двата бутона от твоя клас
- откоментираш от него редовете с фрейма
- панела го лепиш южно: southPanel.add(jp);
- пускаш го да видиш как изглежда
- по същия начин панела с въпросите го лепиш на centerPanel
- подслушвателя на Next бутона го правиш да вика метод, който сменя съдържанието на choice бутоните и repaint()- ва centerPanel , като също сменя и брояча
- за брояч си слагаш в началото една статична int класова променлива
0

Споделете тази тема чрез:


Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login