更改选择框的坐标

时间:2016-01-21 11:53:15

标签: java

我为我制作的applet提供了一些代码。

import javax.swing.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Main extends Applet {
     Color clr;

     public void paint(Graphics g) {
         clr=new Color(0,68,255);
          setBackground(clr);
         g.setColor(new Color(255,255,255));
        g.drawString("Select between the numbers.",40,10);
     }

     public void init() {
         char x='\n';
         Choice c = new Choice();
         c.add("1");
         c.add("2");
         c.add("3");
         add(c);
     }
}

我想设置Choice c的坐标,但是当我给出坐标时,它会说非法坐标或者类似的东西......你对如何修复它有什么想法吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果您想手动定位组件,则必须将小程序的布局设置为null,然后才能使用setLocation()

例如,使用我之前为您制作的其他question小程序,您可以使用此代码。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Test extends Applet {
    Color clr;
    Choice c = new Choice();

    public void paint(Graphics g){
        clr=new Color(0,68,255);
        setBackground(clr);
        g.setColor(new Color(255,255,255));
        g.drawString("Select between the numbers.",40,10);
    }

    public void init(){
        char x='\n';
        setLayout(null);
        c.add("1");
        c.add("2");
        c.add("3");
        c.addItemListener(new CustomItemListener());
        c.setLocation(100,100);
        add(c);
    }

    class CustomItemListener implements ItemListener
    {
        @Override
        public void itemStateChanged(ItemEvent e)
        {
            if(e.getSource() == c) {
                if(c.getSelectedItem().equals("1")) {
                    System.out.println("1 is selected in Choice selector c");
                }
            }
        }
    }
}

这会产生类似这样的东西。

Applet with cmd open on top to show output

答案 1 :(得分:0)

你应该使用windowBuilder。这是一个如何安装它的教程。谢谢我以后。!

https://www.youtube.com/watch?v=oeswfZz4IW0