[Java] Wyświetlanie postępów na linii produkcyjnej

bicker
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 22 paź 2012, o 11:48
Płeć: Mężczyzna
Lokalizacja: Lubartów

[Java] Wyświetlanie postępów na linii produkcyjnej

Post autor: bicker »

Witam wszystkich forumowiczów
i proszę o wyrozumiałość, jestm początkującym programistą, i dostałem zadanie aby wykonać program, który by pokazywał postepy na linii produkcyjnej w jednym oknie wartość by sie zmieniała co określony czas (i wydawała dźwięk - tego nie wiem jak zrobić) w drugim wartość by się zminiała przy naciśnięciu przycisku. Napisałem taki zlepek z tutoriali na necie, ale wymaga duzo poprawy nie wiem jak to poprawić aby wszystki dane były we właściwych miejscach. i aby to działało prawidłowo

napisałem to w 3 plikach, tak mi doradzili.

Timer.java

Kod: Zaznacz cały

public class Timer extends Thread 
{
	
	Andom adm;

double sCzas;
	Timer(Andom andom)
	{
		adm = andom;
	}
	public void SetTime(double time)
	{
		sCzas = time;
	}
	public void run() { 
        while (true)
        { 
        	try{sleep((long) sCzas);} 
            catch (InterruptedException e){} 
        	adm.Timer();
        } 
	 				  }

}
Test.java

Kod: Zaznacz cały

import java.awt.EventQueue;
public class Test
{
	public static void main(String[] args)
	{
		Andom adm = new Andom();
		adm.setVisible(true);
						
	}
}
Andom.java

Kod: Zaznacz cały

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Andom extends JFrame implements KeyListener, ActionListener 
{


	private static final long serialVersionUID = 1L;
JPanel p; //def panela głównego p cała ramka
JPanel p1=new JPanel();//def panela p1 
JPanel p2=new JPanel();//def panela p2 
JPanel p3=new JPanel();//def panela p3
JPanel p4=new JPanel();//def panela p4
JPanel p5=new JPanel();//def panela p4


JLabel l1=new JLabel("produkcja");
JLabel l2=new JLabel("CEL");
JLabel l3=new JLabel("JEST");
JLabel l4=new JLabel("0");
JLabel l5=new JLabel("0");
JLabel l6=new JLabel("l6");
JLabel l7=new JLabel("Planowana ilosc na zmiane:");
JLabel l8=new JLabel("0");
JLabel lkomunikat=new JLabel("");
Timer timer;

JMenuBar mb=new JMenuBar();
JMenu mplik=new JMenu("Plik");
JMenuItem mizamknij=new JMenuItem("Zamknij");
JMenuItem miczas=new JMenuItem("zmiana czasu");
JMenuItem miplan=new JMenuItem("zmiana planu");
JMenuItem miist=new JMenuItem("ustaw wartość IST");
JMenuItem mizero=new JMenuItem("zerowanie");
JMenuItem misoll=new JMenuItem("ustaw wartość SOLL");
JMenuItem miabout=new JMenuItem("About");

int liczba = Integer.parseInt/*pobrany tekst konwertuj na typ int*/(l4.getText()/*tu pobierz text z l4*/);
int wartosc = Integer.parseInt/*pobrany tekst konwertuj na typ int*/(l5.getText()/*tu pobierz text z l5*/);
int takt;




public Andom() 
{
	super( "Andom" );
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setSize(1024,768);

	mplik.add(miczas);
	mplik.add(miplan);
	mplik.add(misoll);
	mplik.add(miist);
	mplik.add(mizero);
	mplik.add(mizamknij);
		setJMenuBar(mb);
	
	mb.add(mplik); 
	mb.add(miabout);
	mizamknij.addActionListener(this);
	miabout.addActionListener(this);
	miczas.addActionListener(this);
	miist.addActionListener(this);  
	misoll.addActionListener(this);  
	mizero.addActionListener(this);
	miplan.addActionListener(this);
	
l1.setVerticalTextPosition(JLabel.CENTER);
l1.setHorizontalAlignment(JLabel.CENTER);
l1.setFont(new Font("Dialog",Font.BOLD,60));

l2.setVerticalTextPosition(JLabel.CENTER);
l2.setHorizontalAlignment(JLabel.CENTER);
l2.setFont(new Font("Dialog",Font.BOLD,50));

l3.setVerticalTextPosition(JLabel.CENTER);
l3.setHorizontalAlignment(JLabel.CENTER);
l3.setFont(new Font("Dialog",Font.BOLD,50));

l4.setVerticalTextPosition(JLabel.CENTER);
l4.setHorizontalAlignment(JLabel.CENTER);
l4.setFont(new Font("Dialog",Font.BOLD,160));

l5.setVerticalTextPosition(JLabel.CENTER);
l5.setHorizontalAlignment(JLabel.CENTER);
l5.setFont(new Font("Dialog",Font.BOLD,160));

l6.setVerticalTextPosition(JLabel.CENTER);
l6.setHorizontalAlignment(JLabel.CENTER);
l6.setFont(new Font("Dialog",Font.BOLD,120));

l7.setVerticalTextPosition(JLabel.CENTER);
l7.setHorizontalAlignment(JLabel.CENTER);
l7.setFont(new Font("Dialog",Font.BOLD,35));

l8.setVerticalTextPosition(JLabel.CENTER);
l8.setHorizontalAlignment(JLabel.CENTER);
l8.setFont(new Font("Dialog",Font.BOLD,70));

lkomunikat.setVerticalTextPosition(JLabel.CENTER);
lkomunikat.setHorizontalAlignment(JLabel.CENTER);
lkomunikat.setFont(new Font("Dialog",Font.BOLD,50));

p=(JPanel)getContentPane();

p.add(p1,BorderLayout.NORTH);
p1.setLayout(new GridLayout(1,3));
p1.setPreferredSize(new Dimension (MAXIMIZED_HORIZ,100));
p1.setBackground(Color.GREEN);
p1.add(l1);
 

p.add(p2,BorderLayout.CENTER);
p2.setLayout(new GridLayout(3,2));
p2.add(l2);
p2.add(l3);
p2.add(l4);
p2.add(l5);
p2.add(l7);
p2.add(l8);

p.add(p3,BorderLayout.SOUTH); 
p3.setLayout(new GridLayout(1,1));
p3.setPreferredSize(new Dimension (MAXIMIZED_HORIZ,100));
p3.setBackground(Color.green);
p3.add(lkomunikat);

timer = new Timer(this);
timer.start();
timer.suspend();
lkomunikat.setText(("naciśnij start"));



JOptionPane.showMessageDialog(null,"Podaj planowaną ilość , czas wyliczy się automatycznie dla 440 minut :)");
//String sCzas = JOptionPane.showInputDialog("podaj czas w sekundach");
String sPlan = JOptionPane.showInputDialog("podaj planowaną ilość ");
//double czas = Double.parseDouble(sCzas);
double plan = Double.parseDouble(sPlan);
l8.setText((sPlan));
takt = (int) (27000 / plan);
timer.SetTime(27000000 / plan);
System.out.println(takt);

setFocusable(true);
addKeyListener(this);
setVisible(true);
}


@SuppressWarnings("deprecation")
public void keyPressed(KeyEvent e){
	
	
}
  
  

public void keyReleased(KeyEvent e)
{
	if (e.getKeyCode()==120) // f9
	{
	
		l5.setText(Integer.toString(++wartosc));
		
	}
	else if (e.getKeyCode()==109) // -
	{
	
		l5.setText(Integer.toString(--wartosc));
	}
	else if (e.getKeyCode()==119) // f8
	{
		l4.setText(Integer.toString(liczba=0));
		l5.setText(Integer.toString(wartosc=0));
		l8.setText(Integer.toString(wartosc=0));
		lkomunikat.setText(("naciśnij start"));
		
		timer.suspend();
	}
	
	else if (e.getKeyCode()==116)  // f5
	{
		timer.resume();
		lkomunikat.setText(("Praca"));
		
	}
	else if (e.getKeyCode()==118) // f7
		{
		timer.suspend();
		lkomunikat.setText(("Pausa")); 
		}

	else if (e.getKeyCode()==117) // f6
	{
		lkomunikat.setText(("AWARIA")); 
	timer.suspend();
	}
}

public void keyTyped(KeyEvent e)
{
}

public void actionPerformed (ActionEvent e)
{
	if(e.getSource()==mizamknij)
		 System.exit(0);
	
	else if(e.getSource()==miczas)
	{ 
		String sTakt = JOptionPane.showInputDialog("podaj czas w sekundach");
		double takt = Double.parseDouble(sTakt);
		takt = (takt*1000);
		timer.SetTime(takt);
	}	
	else if(e.getSource()==miplan)
	{ 
		String sPlan = JOptionPane.showInputDialog("podaj planowaną ilość");
		Double plan = Double.parseDouble(sPlan);
		l8.setText((sPlan));
	}
	else if(e.getSource()==mizero)
	{ 
		l4.setText(Integer.toString(liczba=0));
		l5.setText(Integer.toString(wartosc=0));
		l8.setText(Integer.toString(wartosc=0));
		lkomunikat.setText(("naciśnij start"));
		timer.suspend();
	}
	
	else if(e.getSource()==miist)
	{ 
		String sIst = JOptionPane.showInputDialog("podaj ilość IST");
		Double ist = Double.parseDouble(sIst);
		l5.setText((sIst));
	}
	else if(e.getSource()==misoll)
	{ 
		String sSoll = JOptionPane.showInputDialog("podaj ilość SOLL");
		Double soll = Double.parseDouble(sSoll);
		l4.setText((sSoll));
	}
	
	
	
	else if(e.getSource()==miabout)
		JOptionPane.showMessageDialog(null,"Czas taktu = "+ (takt) + " s.");
}

public void Timer() {


		liczba ++;//zwiększ o 1
		l4.setText(String.valueOf(liczba)/*konwertuj liczbę int na String*/);//l4 pobierz tekst
					}
   }

               ; 
	
Proszę o jakąś pomoc
Pozdrawiam
bicker
Ostatnio zmieniony 22 paź 2012, o 19:41 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
ODPOWIEDZ