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);
10 svar · 247 visningar · startad av LAMP
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);
}
}
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);
Tack, isåfall får det bli GridBagLayout, för jag ska ha en massa annat också.
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?
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);
Ä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);
}
}
public void init() {
panelBottom.setLayout(layout);
panelBottom.add(textMessage);
panelBottom.add(writeMessage);
panelBottom.add(send);
panelBottom.add(delete);
[b]add(panelBottom, "South");[/b]
}
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 {
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 :)
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?