/** * De klasse beheert de GUI van InhoudPaneel * @author Haitham Muhidin * @version 6.0 */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class InhoudPaneel extends JPanel implements ActionListener { // Grafische attributen private JLabel invoerMaat; private JTextField maatKeuze; private JLabel invoerSoort; private JComboBox soortKeuze; private JButton inhoudKnop; private JLabel inhoud; private Figuur figuur; private JLabel invoerHoogte; private JTextField hoogteKeuze; /** * Constructor * Maakt een nieuw eenvoudig InhoudPaneel * Een invoervak JTextField voor de maat * Een keuzelijst JComboBox voor de soort (kubus - bol - cilinder - cilinder-10) * Een knop JButton om het rekenen te starten */ public InhoudPaneel() { // Grafische componenten invoerMaat = new JLabel( "Voer de straal of ribbe in"); maatKeuze = new JTextField( 10 ); invoerSoort = new JLabel( "Kies een figuur"); soortKeuze = new JComboBox(); inhoudKnop = new JButton( "Bereken inhoud"); inhoudKnop.addActionListener( this ); inhoud = new JLabel( "................."); invoerHoogte = new JLabel ( "Voer de hoogte in"); hoogteKeuze = new JTextField( 10 ); // Kleuren this.setBackground(Color.LIGHT_GRAY); inhoudKnop.setBackground(Color.BLUE); inhoudKnop.setForeground(new Color(150,150,150)); // Toevoegen van componenten aan het frame add( invoerMaat ); add( maatKeuze ); add( invoerSoort ); add( soortKeuze ); add( inhoudKnop ); add( inhoud ); add( invoerHoogte ); add( hoogteKeuze ); soortKeuze.addItem("kubus"); soortKeuze.addItem("bol"); soortKeuze.addItem("cilinder"); soortKeuze.addItem("cilinder-10"); } /** * Action Listener * Start de actie, in dit geval het berekenen van de inhoud * Maakt een instantie van Figuur * Laat deze instantie de inhoud berekenen * Zet het antwoord op het scherm (in JLabel inhoud) */ public void actionPerformed( ActionEvent e ) { if (e.getSource() == inhoudKnop){ // reageert alleen op de inhoud knop // Lees de invoer String soort = soortKeuze.getSelectedItem().toString(); String invoer = maatKeuze.getText(); String invoer2 = hoogteKeuze.getText(); double maat = Double.parseDouble( invoer ); // Maak figuur if( soort.equals("cilinder")){ double hoogte = Double.parseDouble( invoer2 ); figuur = new Figuur(soort,maat,hoogte); } else{ figuur = new Figuur(soort,maat); } // Inhoud opvragen en weergeven double inh = figuur.geefInhoud(); if (inh < 0) inhoud.setText("Er is iets fout gegaan."); // figuur geeft -1 als er iets fout is gegaan else inhoud.setText("De inhoud van deze "+ figuur.geefSoort() + " is: "+ inh); } } //14) 512 //15) 2144.66 //16) 15.63 //17) Ik zie een soort van error code (Terminalvenster) //18) 1608.5 //19) Als je 2 ints door elkaar deelt, neemt hij de mod() van de overgebleven breuk zodat dat ook een int is, waardoor 4/3 uitkomt op 1. Bij 4.0/3.0 komt wel de goede breuk uit. }