Men der hvor du har skrevet class SmallA og SmallB der ville jeg have nogle ala include(enfunktion.java) jeg har prøvet import, men kan ikke få det til at virke.
Du kan ikke bruge include i Java. Det eneste der har nogenlunde samme effekt er, hvis du extender(arver) en anden klasse - dog er der så det problem, at man kun kan extende fra én klasse.
Men hvis du derimod opretter instanser af klasserne SmaalA og SmaalB, har du adgang til alle public metoder i disse klasser.
Jeg har modificeret eksemplet fra før (Du skal se SmaalA og SmaalB som dine to små applikationer:
I nedenstående opretter jeg en instans af hver klasse, når jeg siger: a = new SmaalA(); b = new SmaalB();
så har jeg, hvis jeg bruger de to variabler a,b adgang til alle public metoder i de to klasser. eks. a.getNavn(); // Vil returnere det der er skrevet i getNavn-metoden.
Husk! At dine to små applikationer (.class filerne) skal ligge i samme mappe eller i hvert fald et sted i classpath der kan findes.
import java.awt.*; import javax.swing.*;
public class Faneblad extends JFrame { private JTabbedPane jPane; private SmaalA a; private SmaalB b;
public Faneblad() { setSize(400, 400);
a = new SmaalA(); b = new SmaalB();
jPane = new JTabbedPane(); jPane.add(a.getNavn(), a); jPane.add(b.getNavn(), b);
hmm, så lyder copy-paste nemmere.. JEg har så prøvet at sætte dem sammen, og sætte funktionerne fra de 2 andre programmer til private, pga. at nogle af objektnavnene går igen.
# source #
import java.awt.*; import java.awt.event.*; import java.applet.*; import java.io.*; import java.net.*; import javax.swing.*; import java.text.*; // importere det bibliotek som skal bruges til afrunding
public class faneblad extends JApplet {
private JTabbedPane jPane;
public faneblad() { setSize(400, 400);
jPane = new JTabbedPane(); jPane.add("Klasse A", new faneblad()); jPane.add("Klasse B", new ProjektOpg1());
public static void main(String[] args) { new faneblad().setVisible(true); } }
/***** Fiboncciatal *** START ****/
private class Fibonaccital extends JApplet {
/* Intalisere nogle objekter */ JLabel overskrift = new JLabel(" Fibonaccitalrækken "); JLabel underoverskrift = new JLabel(" Indtast Tal "); JTextField MaxTal = new JTextField(4); JLabel blank = new JLabel("\n"); JLabel blank2 = new JLabel("\n"); JButton udregnKnap = new JButton("Udregn!"); JTextArea textfeltet = new JTextArea(10,25);
public Fibonaccital() {
/* sætter layout'et til at være GidBagLayout */
Container container = getContentPane(); GridBagLayout layout = new GridBagLayout(); container.setLayout(layout); GridBagConstraints constraints = new GridBagConstraints();
/* Tilføjer et objekt til gridbag alt fra constraints.fill til container.add() er de parametre som skal bruges og disse er kopieret ned, derfor står forklaringen kun én gang. */
constraints.fill = GridBagConstraints.HORIZONTAL; // bestemmer hvordan boksen skal kunne udvide sig. I dette tilfælde kun horisontalt. constraints.gridx = 0; // placerings kolonne constraints.gridy = 0; // placerings række constraints.gridwidth = 3; // bredde angivet i antal kolonner constraints.gridheight = 1; // højde angivet i antal rækker
layout.setConstraints(overskrift,constraints); // Tilføjer objektet (i dette tilfælde overskriften) til gridbag. container.add(overskrift); // tilføjer det til layoutet.
constraints.fill = GridBagConstraints.BOTH; // Kan udvide sig i begge retning constraints.gridx = 0; constraints.gridy = 1; constraints.gridwidth = 2; constraints.gridheight = 1;
udregnKnap.addActionListener(new ActionListener() { // Tilføjer en actionListener til knappen, som kan aktivere en funktion ved klik public void actionPerformed(ActionEvent evt) { udregnKnapActionPerformed(evt); } } );
setSize( 350, 300 ); setVisible( true ); }
private void udregnKnapActionPerformed(ActionEvent evt) { // laver en private funktion som er tilknyttet en actionlistener.
int MaxTallet = Integer.parseInt(MaxTal.getText()); // Henter værdien af MaxTal
textfeltet.setText(""); // reset'er textareaet når der trykkes på knappen.. textfeltet.append("0 \n" + "1 \n");
int n = 0; int i = 1; int z = 0; while ( z < MaxTallet ) {
z = n + i; n = i; i = z;
if ( z <= MaxTallet ) { textfeltet.append(String.valueOf(z) + "\n"); // Tilføjer værdien til textareaet } if ( MaxTallet < 1 ) { textfeltet.setText(""); } if ( MaxTallet > 90 ) { textfeltet.setText(" Tallet er for højt "); } }
}
}
/***** Fiboncciatal *** SLUT *****/
/***** Andengradsligninger *** START ****/
private class ProjektOpg1 extends JApplet {
JLabel overskrift = new JLabel( " Indtast a,b & c " ); JTextField inputA = new JTextField(4); JTextField inputB = new JTextField(4); JTextField inputC = new JTextField(4); JLabel underskrift = new JLabel( " Antal Nulpunkter " ); JLabel blank = new JLabel("\n"); JLabel blank2 = new JLabel("\n"); JTextField antalNP = new JTextField(4); JLabel xValues = new JLabel( " X-værdier" ); JTextField xPlus = new JTextField(2); JTextField xMinus = new JTextField(2); JButton udregnKnap = new JButton("Udregn !");
public ProjektOpg1() {
Container container = getContentPane(); GridBagLayout layout = new GridBagLayout(); container.setLayout(layout); GridBagConstraints constraints = new GridBagConstraints();
C:\apache\htdocs\Java\Projekt1\faneblad.java:33: modifier private not allowed here private class Fibonaccital extends JApplet { ^ C:\apache\htdocs\Java\Projekt1\faneblad.java:178: modifier private not allowed here private class ProjektOpg1 extends JApplet { ^ 2 errors > Udfører
Hmmm - I øjeblikket adder du en applet til en applet - det kunne jeg ikke forestille mig var en god idé (jeg har aldrig prøvet det)
Hvad hvis du lader din Fibonacital og ProjektOpg1 arve fra JPanel i stedet? Og så i dine constructorer adder du bare din komponenter direkte til panelet i stedet for at hive en Container ud:
noget a la
Container container = getContentPane(); GridBagLayout layout = new GridBagLayout(); container.setLayout(layout);
bliver til:
GridBagLayout layout = new GridBagLayout(); this.setLayout(layout);
okay, mange tak. Jeg har fået det til at virke nu.
problemet var at jeg kombileret det på en forkert måde.
:-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.