zak*_*191 2 java applet awt layout-manager java-6
我需要制作一个Java 6,640*480像素的applet,底部有一个带有一些按钮,滚动条和标签的工具栏.我能想到的最好的方法是使用a BorderLayout,使BorderLayout.SOUTH区域成为a GridBagLayout(包含控件),其余BorderLayout区域为null,作为用控件绘制图形的地方.我在网上找不到任何不使用swing的资源,而且我不知道有什么关于swing来推断他们正在做什么或如何将它翻译成awt代码.这是我现在的位置.代码突然结束init(),因为这是布局管理器开始的地方.感谢您的帮助.如果您需要更多信息,请告知我们.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Bounce extends Applet implements ActionListener, AdjustmentListener
{
private static final long serialVersionUID = 1L;
private Graphics page;
//buttons
String shapeButtonText = "Square";
Button shape = new Button(shapeButtonText);
Button quit = new Button("Quit");
Button run = new Button("Run");
Button tail = new Button("Tail");
Button clear = new Button("Clear");
//labels
Label speedLabel = new Label("Speed", Label.CENTER);
Label sizeLabel = new Label("Size", Label.CENTER);
//scrollbars
private final int barHeight = 20;
private final int SLIDER_WIDTH = 10;
private final int MAXSPEED = 110;
private final int MINSPEED = 0;
private final int UNIT_INC = 1;
private final int BLOC_INC = 10;
private final int MAX_SIZE = 110;
private final int MIN_SIZE = 10;
Scrollbar speedBar = new Scrollbar(Scrollbar.HORIZONTAL, MINSPEED, SLIDER_WIDTH, 0, MAXSPEED);
Scrollbar sizeBar = new Scrollbar(Scrollbar.HORIZONTAL, MIN_SIZE, SLIDER_WIDTH, 0, MAX_SIZE);
//methods
public void init()
{
//set up objects
//speed scroll bar
speedBar.setUnitIncrement(UNIT_INC);
speedBar.setBlockIncrement(BLOC_INC);
speedBar.setValue(MAXSPEED/2);
//size scrollbar
sizeBar.setUnitIncrement(UNIT_INC);
sizeBar.setBlockIncrement(BLOC_INC);
sizeBar.setValue(MAX_SIZE/2);
//draw the window
BorderLayout window = new BorderLayout();
GridBagLayout toolbar = new GridBagLayout();
//?
}
public void start()
{
}
public void run()
{
}
public void actionPerformed(ActionEvent e)
{
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
}
public void stop()
{
}
public void destory()
{
}
}
Run Code Online (Sandbox Code Playgroud)
让我们澄清一些事情.甲LayoutManagerS被一个使用Container(例如Frame,Panel或Applet),以计算内的部件的位置和大小Container.这意味着谈论"嵌套LayoutManager" 是不正确的.另一方面,你可以将Containers 嵌套在彼此内部,并为每个人提供自己的内容LayoutManager.我相信这就是你想要做的.
让我用一个人为的例子说明这一点:
public class MyGUI {
public static void main(String[] args) {
Frame f = new Frame("Layout Example");
Panel mainPanel = new Panel(new BorderLayout());
f.add(mainPanel);
Panel toolBar = new Panel(new FlowLayout());
toolBar.add(new Button("Button 1"));
toolBar.add(new Button("Button 2"));
mainPanel.add(tollBar.NORTH);
Panel statusBar = new Panel(new FlowLayout());
statusBar.add(new Label("Status"));
mainPanel.add(statusBar);
f.pack();
f.show();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您需要Panel为每个创建一个新的LayoutManager.或者更确切地说,每个Panel你创建的都需要LayoutManager.另外,本实施例可以很容易地从AWT改变通过替换到Swing Frame与JFrame,Panel与JPanel,Button与JButton,和Label用JLabel.
ps以上代码未经过测试.不过,它应该说明这里涉及的概念.
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |