我正在尝试为学校制作一个Weather小程序,但是我在将一个类调用到主类时遇到了问题。最后我想要3个永久性组件(位置,温度,降水)然后在图像框中我想做一个if语句从组件中的数据中拍摄适当的图像。
// The "Weather" class.
import java.applet.*;
import javax.swing.*;
import java.awt.*;
public class Weather extends Applet
{
//TempBar Intergers
//int x=
//int y=
//int H= //H = Heat
//PercipBar Intergers
//int x2=
//int y2=
//int P = //P = pericipitation
public void init ()
{
GridLayout umm = new GridLayout(0,2);
PercipBar percip = new PercipBar();
getContentPane.addItem (percip());
}
public void paint (Graphics g)
{
}
}
import java.awt.*;
import java.applet.*;
public class PercipBar extends Applet
{
int x2 =2;
int y2 =2;
int P =80;//P = percipitation will be declared in main file
public void paint (Graphics g)
{
g.setColor (Color.black);
g.drawRect (x2, y2, 100, 20);//outline of bar
g.setColor (Color.blue);
g.fillRect (x2+1, y2+4, P, 14 ); //indicator bar (+4 puts space beetween outline bar)
}
}
答案 0 :(得分:0)
该GUI似乎非常适合包含在BorderLayout
中。
location gui
将被置于BorderLayout.PAGE_START
image
将放入BorderLayout.CENTER
temp
将放入BorderLayout.LINE_END
percip
(拼写为precip
)将被置于BorderLayout.PAGE_END
请注意,降水条应该是另一个小程序!它应该是Component
。
为了在BorderLayout
中分配空间,自定义绘制的组件需要返回合理的首选大小。
最好不要自定义绘制这样的东西,而只需使用Label
来显示文本。这样,我们就不需要覆盖paint
方法或getPreferredSize
。 GUI将从标签的自然大小中获取提示。