GUI med JFrame

GUI – grafiskt användargränssnitt (Graphical User Interface) är det som gör själva interaktionen mellan människan och datorn möjlig. Eftersträva att vara visuellt tilltalande för användaren för att enkelt kunna manövrera över datorn. 

Vad är ett GUI ?

GUI står för Graphical User Interface, eller på svenska Grafiskt Användarsnitt, och är till för att underlätta kontakten mellan människa och dator. Det kan var i form av till exempel, bilder, grafiska knappar eller ljudindikatorer. Lite mer formellt kan vi säga att ett GUI visar objekt som förmedlar information och representerar åtgärder som kan vidtas av användaren. Typsikt så ändrar objekten färg, storlek eller synlighet när användaren interagerar med dem, till exempel, när vi trycker på en knapp.

GUI Java

Som du säkert inser så har det mesta av det vi använder på datorn någon form av GUI koppling för att underlätta just vårt användande. T.ex. tänk på alla knappar och funktioner som finns i Microsoft Word och Excel.

GUI:t är det som användaren ser, i detta fall spelplanen. Koden är “osynlig för användaren” men körs i bakgrunden.

Hur fungerar GUI i Java?

Java har inbyggda klasser som tillhandahålls i JDK (Java Development Kit) för att på ett förhållandevis enkelt sätt skapa grafiska användargränssnitt. Att skriva egna klasser som gör grafik (och “återuppfinna hjulet”) är ett mycket svårt, tidskrävande och komplext uppdrag.

För närvarande så finns det tre aktuella Java-API för grafisk programmering

  • Swing
  • JavaFX
  • AWT (Abstract Windowing Toolkit)

Det ska dock nämnas att de flesta AWT-komponenterna har blivit något föråldrade och har ersatts med nyare Swing-komponenter. Vi kommer fortsättningsvis att använda oss av Swing när vi bygger GUI för vårt spel.

Swing vs Java FX

När det kommer till att välja mellan Swing och Java FX så finns det inget entydigt svar, utan det beror på situationen. Några skillnader är, till exempel, när det kommer till antal komponenter så har Swing en större uppsättning. JavaFX har ett stort antal komponenter tillgängliga, men mindre än vad Swing tillhandahåller. Vidare så har Java FX har ett något mer avancerat user interface och anpassningsbara komponenter jämfört med Swing som använder en mer standardiserad utformning. Avslutningsvis så kan man säga att Swing är standardverktyget för Java-utvecklare för att skapa GUI. Det beror nog på främst på det större biblioteket av komponenter samt att det helt enkelt har funnits längre, därav så har vi valt att använda Swing i vårt exempel.

För att läsa en djupare analys om skillnader mellan Swing och Java FX – länk.

GUI för spel i Java

När vi ska programmera vårt spel, behövs det någon form av spelplan (bildruta), ett GUI som användaren ska spela mot. Ett vanligt förekommande sätt att skapa en bildruta i java är att använda sig av javas inbyggda klass, JFrame.

// Skapar objektet frame och ger titeln på spelet
JFrame frame = new JFrame("Titel"); 

// Kopplar objektet game till GUI:t                   
frame.add(game);                

//Gör GUI:t i rätt storlek (samma storlek som spelet)                       
frame.pack();                                        

//Om man stänger fönstret, stäng av programmet  
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  

//Gör så att man inte kan ändra storlek på fönstret
frame.setResizable(false);                         

//Placerar GUI:t mitt på skärmen     
frame.setLocationRelativeTo(null); 

//Gör fönstret synligt för användaren                    
frame.setVisible(true);

Mer info och sammanställning över de metoder som är tillgängliga i JFrame finns på Oracle Hemsida

Vad tyckte du om sidan?

Lämna gärna feedback och hjälp oss göra sidan bättre

Feedback gör oss bättre!

Lämna gärna feedback om vad du tyckte om avsnittet!