如何在AWT中制作可以有不同位置的重复组件?

时间:2017-05-23 18:35:52

标签: java user-interface awt

import java.awt.*;      
import java.awt.event.*;            
public class StackOFlow {           
    static Frame frame = new Frame();       
    static Label dot = new Label(".");      
    public static void main(String[] args) {        
        new StackOFlow();   
        for (int i = 1; i < 1600; i += 30) {    
            dot.setBounds(i, 400, 80, 30);
            frame.add(dot);
        }   
    }       
    public StackOFlow() {       
        frame.setVisible(true); 
        frame.setLayout(null);  
        frame.setExtendedState(Frame.MAXIMIZED_BOTH);   
    }       
}           

我正在尝试用Java创建一个图形程序,其中,基于所需的功能,将在AWT框架中创建点以形成虚线。我想知道是否有一种方法可以多次创建一个单独的组件(点),因此我不需要声明许多只是点的标签。

1 个答案:

答案 0 :(得分:0)

正如您对问题的评论所述:出于各种原因这样做可能不是一个好主意。

现在,如果你不得不这样做:

1)如果您以后不需要这些点,您只需创建新的实例或展示位置:

    for (int i = 1; i < 1600; i += 30) {  
        Label tempDot = new Label(".");  
        tempDot .setBounds(i, 400, 80, 30);
        frame.add(tempDot );
    } 

2)如果你需要所有单个点或更晚的参考,你可能想把它们放在一个List中:

 List<Label> dots = new ArrayList<Label>();
 [...]

    for (int i = 1; i < 1600; i += 30) {  
        Label tempDot = new Label(".");  
        tempDot .setBounds(i, 400, 80, 30);
        frame.add(tempDot );
        dots.add(tempDot);
    }

3)如果Label仅表示结束(虚线),请点击此处查看:Drawing dashed line in java