Automat z napojami dodanie efektów

Automat z napojami dodanie efektów
I3
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:42
0

Witam wszystkich

Chcialbym dodac pare rzeczy do swojego programu, ale nie do konca wiem jak.
Np po wybraniu danej opcji chcialbym aby tekst wyswietlal sie w innym kolorze.

Moze sami macie jakies pomysly co moglbym dodac do tej aplikacji.
Dzieki z góry pozdrawiam.

Kopiuj
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Assignment2 extends Applet implements ActionListener
{
//declare label and textfield
Label choiceprompt1, welcomscr;
TextField choiceinput1;

//declare variables
int coffee, tea, soup, anwser;
int coffeect, teact, soupct, waterct;
double water;


	public void init()
	{

	//create label,setting color of background and text
	welcomscr = new Label("Welcome to my vending machine please choose from fallowing options ");
	add(welcomscr);
	//welcomscr.setForeground(Color.blue);
	//welcomscr.setBackground(Color.orange);
	choiceprompt1 = new Label("Please enter number 1 to 5:");
	add(choiceprompt1);

	//create textfield
	choiceinput1 = new TextField(10);
	choiceinput1.addActionListener(this);
	add(choiceinput1);
	//choiceprompt1.setForeground(Color.blue);
	//choiceprompt1.setBackground(Color.orange);
	}

		//Drawing menu of vending machine
		public void paint(Graphics g)
		{
		//setBackground(Color.orange);
		g.drawLine(20,130,550,130);
		g.drawLine(20,310,550,310);
		g.drawString("Menu",50, 150);
		g.drawString("No: 1 Coffee 2 \u20ac              Total bought   "	+coffeect, 50,180);
		g.drawString("No: 2 Tea 2 \u20ac                   Total bought   "		+teact, 50,210);
		g.drawString("No: 3. Soup 2 \u20ac               Total bought   "		+soupct, 50,240);
		g.drawString("No: 4. Water 1.50 \u20ac         Total bought   "		+waterct, 50,270);
		g.drawString("No: 5. Finish and pay ", 50,300);

		if (anwser ==5 && total()==0) //If user ended progrma and didn't buy anything
		g.drawString("You didn't buy anything ", 220,110);

		switch(anwser) //After an option is selected this will be prompt to screen
				{
				case 0:
				g.drawString("No option selected yet" , 210,90);
				break;
				case 1:
				g.drawString("You have chosen Coffee ", 210,90);
				break;
				case 2:
				g.drawString("You have chosen Tea", 210,90);
				break;
				case 3:
				g.drawString("You have chosen Soup ", 210,90);
				break;
				case 4:
				g.drawString("You have chosen Water ", 210,90);
				break;
				case 5:
				g.drawString("Total amount to pay is "		+total()+ "\u20ac", 210,90);
				break;
				default: g.drawString("Error please select an option between 1-5 !!" , 170,90);
				}
		}//end of Paint
		public double total() //Calculation method
		{
		return ((coffee*coffeect)+(tea*teact)+(soup*soupct)+(water*waterct));
		}

				public void actionPerformed(ActionEvent e)
				{

				anwser = Integer.parseInt(choiceinput1.getText()); // Scanning user input
				choiceinput1.setText("");
				repaint(); // painting value to screen

					switch(anwser) // incementation and price of product
					{
					case 1:
					coffeect++;
					coffee=2;
					break;
					case 2:
					tea =2;
					teact++;
					break;
					case 3:
					soup = 2;
					soupct++;
					break;
					case 4:
					water=1.5;
					waterct++;
					break;
					case 5:
					choiceinput1.setEditable(false); //If user will press 5 program will end with no option to reenter choice
					break;
					} //Emd of switch
			        }//End of ActionPerformed
}//End of public class 
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

Sugerowałbym dodać jakiś ludzki design do tej aplikacji, taki z użyciem klas i z możliwoscią rozszerzenia tego a nie GodObject z jedną UberMetodą ;]


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
I3
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:42
0
Shalom napisał(a):

Sugerowałbym dodać jakiś ludzki design do tej aplikacji, taki z użyciem klas i z możliwoscią rozszerzenia tego a nie GodObject z jedną UberMetodą ;]

Jestem poczatkujacym programista i jezeli wiedzialbym jak to zrobic to pewnie juz dawno bym zrobil. Móglbys wrzucic jakis przyklad kodu ?

edytowany 1x, ostatnio: Ic3m4n
0

Korzystajac z Twojego tematu - opłaca się w ogóle zagłębiać w Aplety? Warto na to marnować czas?

I3
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 7 lat
  • Postów:42
0

Czy ktos moglby mi pomoc jak wrzucac ikony

Chodzi mi o to aby przy kazdym wyborze np uzytkownik wybierze kawe wyswietla sie informacja You have choosen coffee i mala ikona kawy. Moglby ktos wrzucic jakis przykladowy kod abym mial odniesienie ? Nie chce aby ktos cos robic za mnie tylko o jakis przyklad, szukalem w google ale nic z tego nie rozumiem.

Kopiuj
import javax.swing.JButton;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Assignment2B00092367 extends Applet implements ActionListener
{
//declare label and textfield
Label choiceprompt1, welcomscr;
TextField choiceinput1;

//declare variables
int coffee, tea, soup, anwser;
int coffeect, teact, soupct, waterct;
double water;
JButton clear;






	public void init()
	{

	//create label,setting color of background and text
	welcomscr = new Label("Welcome  !!! Please choose from menu fallowing options ");
	welcomscr.setLocation(10, 500);
	welcomscr.setForeground(Color.blue);
	add(welcomscr);

	clear = new JButton("Restart");
	add(clear);
	clear.addActionListener(this);

	choiceprompt1 = new Label("  Please enter only number 1 to 5: ");
	add(choiceprompt1);
	choiceinput1 = new TextField(10);
	choiceinput1.addActionListener(this);
	add(choiceinput1);

	//create textfield

	//choiceprompt1.setForeground(Color.blue);
	//choiceprompt1.setBackground(Color.orange);
	}


		//Drawing menu of vending machine
		public void paint(Graphics g)
		{
		//setBackground(Color.orange);
		g.drawLine(20,130,550,130);
		g.drawLine(20,310,550,310);
		g.drawString("Menu",50, 150);
		g.drawString("No: 1 Coffee 2 \u20ac              Total bought   "	+coffeect, 50,180);
		g.drawString("No: 2 Tea 2 \u20ac                   Total bought   "		+teact, 50,210);
		g.drawString("No: 3. Soup 2 \u20ac               Total bought   "		+soupct, 50,240);
		g.drawString("No: 4. Water 1.50 \u20ac         Total bought   "		+waterct, 50,270);
		g.drawString("No: 5. Finish and pay ", 50,300);

		if (anwser ==5 && total()==0) //If user ended progrma and didn't buy anything
		g.drawString("You didn't buy anything ", 220,110);

		switch(anwser) //After an option is selected this will be prompt to screen
				{
				case 0:
				g.setColor(Color.red);
				g.drawString("No option selected yet" , 210,90);
				break;
				case 1:
				g.setColor(Color.green);
				g.drawString("You have chosen Coffee ", 210,90);
				break;
				case 2:
				g.setColor(Color.green);
				g.drawString("You have chosen Tea", 210,90);
				break;
				case 3:
				g.setColor(Color.green);
				g.drawString("You have chosen Soup ", 210,90);
				break;
				case 4:
				g.setColor(Color.green);
				g.drawString("You have chosen Water ", 210,90);
				break;
				case 5:
				g.setColor(Color.red);
				g.drawString("Total amount to pay is "	+total()+ "\u20ac" + "  Items bought " + counter() , 170,90);
				break;

				default:
				g.setColor(Color.red);
				g.drawString("Error please select an option between 1-5 !!" , 170,90);
				}





		}//end of Paint

		public double total() //Calculation method
			{
			return ((coffee*coffeect)+(tea*teact)+(soup*soupct)+(water*waterct));
			}

				public int counter()
				{
				return (coffeect+teact+soupct+waterct);
				}

					public void actionPerformed(ActionEvent e)
					{
					anwser = Integer.parseInt(choiceinput1.getText()); // Scanning user input
					choiceinput1.setText("");
					repaint(); // painting value to screen

						switch(anwser) // incementation and price of product
						{
						case 1:
						coffeect++;
						coffee=2;
						break;
						case 2:
						tea =2;
						teact++;
						break;
						case 3:
						soup = 2;
						soupct++;
						break;
						case 4:
						water=1.5;
						waterct++;
						break;
						case 5:
						choiceinput1.setEditable(false); //If user will press 5 program will end with no option to reenter choice
						break;
						} //Emd of switch

						if (e.getSource() == clear)
						{
							choiceinput1.setText("");
							repaint();

						}


				}//End of ActionPerformed
}//End of public class
edytowany 1x, ostatnio: Ic3m4n
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Wczytaj (w metodzie init) obrazki:

Kopiuj
URL url = getCodeBase();
cupOfTea = getImage(url,"tea.gif"); //bez typu zmiennej, cupOfTea musi być polem w klasie
...
    case 2:
          g.setColor(Color.green);
          g.drawString("You have chosen Tea", 210,90);
          g.drawImage(cupOfTea,...,...,null);
          break;

Położenie obrazka musisz sobie policzyć.

P.S. Program wygląda wyjątkowo paskudnie, najbardziej potrzebnym efektem jest poprawienie wyglądu.
Stojąc przed automatem, chciałbym wiedzieć ile będą mnie kosztować dotychczasowe wybory. Kwota do zapłaty powinna być aktualizowana na bieżąco.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans
DK
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:13
0

Hej Ic3m4n, a nie myślałeś, by - tak jak koledzy wspomnieli - zostawić te applety w spokoju (bo nikt tego już nie używa) na korzyść czegokolwiek innego, prostszego w tworzeniu "efektów"? :) Nie wiem, choćby JSF z Primeface - budowa UI prosta jak konstrukcja cepa, bo to framework widgetowy i składasz interfejs jak z klocków. I bardzo niski próg wejścia, sensowny interfejs zrobisz od 0 w ciągu bardzo krótkiego czasu. NetBeansem czy IntelliJ wygenerujesz sobie taki projekt od kopa. W mojej opinii lepsze to niż masterowanie i kolorowanie appletów.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)