LAMPMedlem sedan mars 2002777 inlägg Jag sitter och leker lite med en applet och jag är jävligt novis på java. Jag vill att det ska se ut så här:
texten | textfältet | knapp | knapp
nu tar en knapp upp hela utrymmet i South, varför?
// Test.java
import java.awt.*;
public class Test extends java.applet.Applet {
BorderLayout layout = new BorderLayout();
Button send = new Button("Skicka!");
Button delete = new Button("Radera!");
TextField writeMessage = new TextField();
Label textMessage = new Label("Meddelande: ");
public void init() {
setLayout(layout);
add("South", textMessage);
add("South", writeMessage);
add("South", send);
add("South", delete);
}
}
jmeMedlem sedan maj 20012 237 inlägg hmm...om jag vet rätt så kan du inte ha fler än en(1) "South".
Testa med att göra så här istället:
FlowLayout layout = new FlowLayout();
...
...
...
add.(textMessage);
add.(writeMessage);
add.(send);
add.(delete);
LAMPMedlem sedan mars 2002777 inlägg Tack, isåfall får det bli GridBagLayout, för jag ska ha en massa annat också.
LAMPMedlem sedan mars 2002777 inlägg
Ursprungligen av jme **hmm...om jag vet rätt så kan du inte ha fler än en(1) "South".
Testa med att göra så här istället:
FlowLayout layout = new FlowLayout();
...
...
...
add.(textMessage);
add.(writeMessage);
add.(send);
add.(delete);**
varför har du en punkt efter add?
jmeMedlem sedan maj 20012 237 inlägg oj, ett fel av mig....
Om du vill använda BorderLayout så kan du ju lägga in alla komponenter du vill ha bredvid varanda, i en Panel och sedan adda den....
Panel pane = new Panel();
public void init() {
...
pane.add(delete);
pane.add(textMessage);
add("South", pane);
LAMPMedlem sedan mars 2002777 inlägg Är jag fel på det?
import java.awt.*;
public class Test extends java.applet.Applet {
BorderLayout layout = new BorderLayout();
Panel panelBottom = new Panel(layout);
Button send = new Button("Skicka!");
Button delete = new Button("Radera!");
TextField writeMessage = new TextField();
Label textMessage = new Label("Meddelande: ");
public void init() {
panelBottom.setLayout(layout);
panelBottom.add(textMessage);
panelBottom.add(writeMessage);
panelBottom.add(send);
panelBottom.add(delete);
add("South",panelBottom);
}
}
spangoMedlem sedan juni 20008 205 inlägg public void init() {
panelBottom.setLayout(layout);
panelBottom.add(textMessage);
panelBottom.add(writeMessage);
panelBottom.add(send);
panelBottom.add(delete);
[b]add(panelBottom, "South");[/b]
}
LAMPMedlem sedan mars 2002777 inlägg Har jag gjort fler misstag? Nu visar den ingenting, bara en grå ruta, efter din ändring spango.
import java.awt.*;
public class Test extends java.applet.Applet {
BorderLayout layout = new BorderLayout();
Panel panelBottom = new Panel(layout);
Button send = new Button("Skicka!");
Button delete = new Button("Radera!");
TextField writeMessage = new TextField();
Label textMessage = new Label("Meddelande: ");
public void init() {
panelBottom.setLayout(layout);
panelBottom.add(textMessage);
panelBottom.add(writeMessage);
panelBottom.add(send);
panelBottom.add(delete);
add(panelBottom, "South");
}
}
En fråga till. Vad är skillnaden på:
public class Test extends Applet implements Runnable {
och så som jag skrivit, förutom att jag slipper importera paketet java.applet.Applet i den undre?
public class Test extends java.applet.Applet {
spangoMedlem sedan juni 20008 205 inlägg Ah, du borde skriva så här i stället:
import java.awt.*;
public class Test extends java.applet.Applet {
Panel panelBottom;
Button send;
Button delete;
TextField writeMessage;
Label textMessage;
public void init() {
setLayout(new BorderLayout()); // BorderLayout-objektet behöver inte sparas
panelBottom = new Panel(); // Får FlowLayout som layoutmanager
send = new Button("Skicka!"); // Sen brukar man
delete = new Button("Radera!"); // inte initiera
writeMessage = new TextField(); // objekt innan
textMessage = new Label("Meddelande: "); // de behövs
panelBottom.setLayout(layout);
panelBottom.add(textMessage);
panelBottom.add(writeMessage);
panelBottom.add(send);
panelBottom.add(delete);
add(panelBottom, "South");
}
}
Det är appleten som ska ha borderlayout, inte panelen som ska placeras i syd.
En fråga till. Vad är skillnaden på:
Den enda praktiska skillnaden blir att du i exempel två inte implementerar Runnable :)
LAMPMedlem sedan mars 2002777 inlägg du é kung Spango!
det fungerade efter jag tagit bort raden:
panelBottom.setLayout(layout);
Jag har ytterligare en fråga:
writeMessage = new TextField();
skapar ett textfält med obegränsat antal tecken.
writeMessage = new TextField(100);
skapar ett textfält med plats till 100 tecken.
Nu till frågan, textfältet blir väldigt kort, typ 3 tecken långt, hur gör jag för att få det till en viss längd?
LAMPMedlem sedan mars 2002777 inlägg