Java - någon?

Elegant machinery

Trådstartare
Jag har kört rätt in i väggen i 110.
Jag ska bygga en cylinderberäknade och har gjort detta som en javaapplet. Nu kommer dock läraren o säger att den ska öppnas via kommandotolken, alltså som ett litet program. men hur ska jag ändra i koden för att köra den där istället? Den kan kompileras utan problem, men den är inte körbar :(

Nån som kan ge mig en hjälpande hand? :bow:
 
Sv: Java - någon?

Är det inte bara att ta bort "extends Applet"?

Du behöver en main-metod också, och ta bort init. Om du vill kan du skicka koden till mig så kan jag kika. Fast jag har inte möjlighet att komppilera och köra här på den här datorn.
 
Senast ändrad av en moderator:
Sv: Java - någon?

Posta koden här så kan vi peka ut vad som ska ändras.
 
Sv: Java - någon?

Vore jättesnällt om ni kunde ta en titt!
Likaså får jag inte till det grafiska gränssnittet riktigt rätt, ni ser att det är två rutor i mitten som egentligen inte innehåller nått, men tar jag bort dem så blir det fel i koden? :confused:

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


public class CylinderVolym extends JApplet implements ActionListener {

JButton aVolymKnapp;
JTextField aRadieText;
JTextField aHojdText;
JTextField aResultat;

JPanel användarPanel;
JPanel datorPanel;
JPanel resultatPanel;

JLabel info1;
JLabel info2;
JLabel info3;
JLabel infoLabel;
JLabel resultatLabel;

private JTextField användarResultat, datorResultat;



public void init() {
setSize(400, 200);
skapaGränssnitt();
}//init


public void skapaGränssnitt() {
Container container = getContentPane();
datorPanel = new JPanel();
datorPanel.setLayout(new GridLayout(1,4));

info1 = new JLabel("Radie:", JLabel.CENTER);
info1.setOpaque(true);
info1.setForeground(Color.black);

aRadieText = new JTextField();

info2 = new JLabel("Höjd:", JLabel.CENTER);
info2.setOpaque(true);
info2.setForeground(Color.black);

aHojdText = new JTextField();

datorPanel.add(info1);
datorPanel.add(aRadieText);
datorPanel.add(info2 );
datorPanel.add(aHojdText);

container.add("North", datorPanel);
//-----------------------------
användarPanel = new JPanel();
användarPanel.setLayout(new GridLayout(1,2));

aVolymKnapp = new JButton("Beräkna");
aVolymKnapp.addActionListener(this);
aResultat = new JTextField();


användarPanel.add(aVolymKnapp);
användarPanel.add(aResultat);
container.add("South", användarPanel);
//---------------------------


//I centrum läggs en panel som visar resultatet
resultatPanel = new JPanel(new GridLayout(2,2));
resultatPanel.setBackground(new Color(6,15,225));
användarResultat = new JTextField("");
resultatPanel.add(användarResultat);
datorResultat = new JTextField("");
resultatPanel.add(datorResultat);

infoLabel = new JLabel("Cylinder Volym ", JLabel.RIGHT);
infoLabel.setForeground(Color.black);

resultatPanel.add(infoLabel);
resultatLabel = new JLabel("", JLabel.LEFT);
resultatLabel.setForeground(Color.black);
resultatPanel.add(resultatLabel);
container.add("Center",resultatPanel);
container.validate();

setVisible(true);
}//skapaGränssnitt

public void actionPerformed(ActionEvent e) {


if (e.getSource() == aVolymKnapp) {
String radie = aRadieText.getText();
String hojd = aHojdText.getText();
double aRadie = Double.parseDouble(radie);
double aHojd = Double.parseDouble(hojd);
double aResVolym = Math.PI * aHojd * aRadie*aRadie;
aResultat.setText(aResVolym + " Ve");
System.out.println("TEST");
}



}


}
 
Sv: Java - någon?

Först och främst, posta kod inom code-taggar, så förstörs inte indenteringen.

För att göra om det där till ett exekverbart program ändrar du så det ärver från JFrame istället. Lägg sen till en main-metod ("public static void main( String args[] )") som skapar ett CylinderVolym-object ändra init till att vara konstruktor, såhär:

Kod:
public static void main( String args[] ) {
	new CylinderVolym();
}	
	
public CylinderVolym() {
	setSize(400, 100);
	skapaGränssnitt();
}

GUI-koden är lite rörig, men sen är java också kasst på sådant. Förstår inte riktigt varför du har center-panelerna, ta bort dem och specificera en layout för din huvud-container istället.
(Fungerar att exekvera då när jag testar det.)
 
Senast ändrad av en moderator:

Liknande trådar

Juridik & Ekonomi Anonymt nick. Väldigt långt inlägg, då jag delvis behövde skriva ner mina tankar för mig själv också ;) Jag är i 30-års ålder och lever... 2 3
Svar
50
· Visningar
7 806
  • Artikel Artikel
Dagbok Jag har försatt mig i min nuvarande livssituation för att jag vill öva och bli bättre på problemlösning. Och har man såna mål i livet så...
Svar
11
· Visningar
2 216
Senast: cassiopeja
·
Fordon På väg tillbaka till Neapels flygplats med hyrbilen (inte en trevlig körupplevelse ska tilläggas) missade jag att köra in i rätt fålla...
Svar
8
· Visningar
1 355
Senast: mandalaki
·
Kropp & Själ Konstig rubrik, men det är en fråga som gnagt i mig sedan en tid tillbaka. Hur ska en bära sig åt för att ge upp något som en inte själv... 5 6 7
Svar
121
· Visningar
21 416
Senast: ptr
·

Bukefalos, Hästnyheter, Radannonser

Allmänt, Barn, Dagbok

Hund, Katt, Andra Djur

  • Uppdateringstråd 31
  • Valp med diarré?
  • Valp 2025

Hästrelaterat

Tillbaka
Upp