Okej, nu har jag kört fast - och GUIs är inte min starka sida. Det underliga för mig är att det här i stort sett använt kommandon som ska fungera i andra fall, och likförbannat fungerar det inte för mig. I korthet:
Man ska kunna positionera text i GUI i java. Uppgiften jag ska göra handlar om att sätta en text uppe i vänstra hörnet, en i mitten, en nere i högra hörnet, ovanpå tre färgfält (som jag fått att fungera. För närvarande får jag bara fram det här:
Koden som producerar det "miraklet" är följande:
<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>
import java.awt.*;
import javax.swing.*;
/**
* @param args
*/
public class TrippTrapp extends JPanel{ //Tillåter användning av andra funktioner utanför main
public static void main(String [] args) {
final int X = 200;
final int Y = 200;
final int WIDTH = 480; //Flaggproportioner
final int HEIGHT = 300; //efter svenska flaggan (t ex)
JLabel lTrap, lTrip, lTrul;
JFrame frame = new JFrame("TrippTrappTrull");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(X,Y);
frame.setSize(WIDTH, HEIGHT);
lTrip = new JLabel("Tripp"); //Etiketter
lTrip.setHorizontalTextPosition(SwingConstants.RIGHT);
lTrip.setVerticalTextPosition(SwingConstants.TOP);
lTrap = new JLabel("Trapp");
lTrap.setHorizontalTextPosition(JLabel.LEFT);
lTrap.setVerticalTextPosition(JLabel.BOTTOM);
lTrul = new JLabel("Trull", SwingConstants.RIGHT);
lTrul.setHorizontalAlignment(SwingConstants.LEFT);
lTrul.setVerticalAlignment(SwingConstants.BOTTOM);
JPanel flaggbox = new TrippTrapp();
flaggbox.setPreferredSize(new Dimension(WIDTH, HEIGHT));
flaggbox.add(lTrip);
flaggbox.add(lTrap);
flaggbox.add(lTrul);
frame.getContentPane().add(flaggbox);
frame.pack();
frame.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g); // Ritinstruktioner för rektanglar
g.setColor(Color.red);
g.fillRect(0, 0, 480, 100);
g.setColor(Color.blue);
g.fillRect(0, 100, 480, 100);
g.setColor(Color.cyan);
g.fillRect(0, 200, 480, 100);
}
</pre></div></div>
Någon som har några förslag på hur jag kan fixa det här?
Nu går jag och lägger mig, inte ett bra sätt att börja en ny vecka...![Frown :gremfrown: :gremfrown:](/wrnu/smilies/gremfrown.png)
Man ska kunna positionera text i GUI i java. Uppgiften jag ska göra handlar om att sätta en text uppe i vänstra hörnet, en i mitten, en nere i högra hörnet, ovanpå tre färgfält (som jag fått att fungera. För närvarande får jag bara fram det här:
![](http://farm7.static.flickr.com/6204/6160499490_e76691f26a.jpg)
Koden som producerar det "miraklet" är följande:
<div class="ubbcode-block"><div class="ubbcode-header">Code:</div><div class="ubbcode-body ubbcode-pre" ><pre>
import java.awt.*;
import javax.swing.*;
/**
* @param args
*/
public class TrippTrapp extends JPanel{ //Tillåter användning av andra funktioner utanför main
public static void main(String [] args) {
final int X = 200;
final int Y = 200;
final int WIDTH = 480; //Flaggproportioner
final int HEIGHT = 300; //efter svenska flaggan (t ex)
JLabel lTrap, lTrip, lTrul;
JFrame frame = new JFrame("TrippTrappTrull");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(X,Y);
frame.setSize(WIDTH, HEIGHT);
lTrip = new JLabel("Tripp"); //Etiketter
lTrip.setHorizontalTextPosition(SwingConstants.RIGHT);
lTrip.setVerticalTextPosition(SwingConstants.TOP);
lTrap = new JLabel("Trapp");
lTrap.setHorizontalTextPosition(JLabel.LEFT);
lTrap.setVerticalTextPosition(JLabel.BOTTOM);
lTrul = new JLabel("Trull", SwingConstants.RIGHT);
lTrul.setHorizontalAlignment(SwingConstants.LEFT);
lTrul.setVerticalAlignment(SwingConstants.BOTTOM);
JPanel flaggbox = new TrippTrapp();
flaggbox.setPreferredSize(new Dimension(WIDTH, HEIGHT));
flaggbox.add(lTrip);
flaggbox.add(lTrap);
flaggbox.add(lTrul);
frame.getContentPane().add(flaggbox);
frame.pack();
frame.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g); // Ritinstruktioner för rektanglar
g.setColor(Color.red);
g.fillRect(0, 0, 480, 100);
g.setColor(Color.blue);
g.fillRect(0, 100, 480, 100);
g.setColor(Color.cyan);
g.fillRect(0, 200, 480, 100);
}
</pre></div></div>
Någon som har några förslag på hur jag kan fixa det här?
Nu går jag och lägger mig, inte ett bra sätt att börja en ny vecka...
![Frown :gremfrown: :gremfrown:](/wrnu/smilies/gremfrown.png)