首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免激活类上的所有方法?

如何避免激活类上的所有方法?
EN

Stack Overflow用户
提问于 2014-06-09 07:41:28
回答 1查看 51关注 0票数 0

我正在尝试制作一个ArrayList,它处理不同的GUI组件。这个类应该有方法,其中一些方法不适用于所有组件,所以我尝试使用有条件购买,似乎不可能这样解决它。

你能指出解决这个问题的正确方向吗?

代码:

代码语言:javascript
复制
    public class ArrGUI
    {
    private ArrayList <JLabel>  lab;
    private ArrayList <JButton> but;
        //...
    final int t;

    public ArrGUI(JLabel x){
    lab = new ArrayList <JLabel> ();
    t=0;}
    //... more constructors with different paramenters different t values
    //common methods of array list

    if(tipo==0)
    {
    public void VisibleSI() {
    for (JLabel i: lab) i.setVisible(true);}

    public void VisibleNO() {
    for (JLabel i: lab) i.setVisible(false);}
    //...

编辑:我这样解决了我的问题。要访问任何其他方法,我将使用obtener方法。谢谢你的帮助。

代码语言:javascript
复制
    public class ArregloGUI
    {
private ArrayList <Component> lab;

public ArregloGUI(Component x){
lab = new ArrayList <Component> ();}

//Operaciones
public void adicionar(Component x) {
    lab.add(x);}

public int tamaño() {
    return lab.size();}

public Component obtener(int i) {
    return lab.get(i);}

public void eliminarAlFinal() {
    if (tamaño() > 0)   lab.remove(tamaño()-1);}

public void reinicializarArreglo() {
    if (tamaño() > 0)   lab.clear();}

public void ubicar(int i, int x, int y, int xx, int yy){
    obtener(i).setBounds(x,y,xx,yy);}
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-09 07:46:59

如果某个方法可用,则在Java中静态地确定对象。它可能不依赖于存储在对象中的数据。

如果不应该调用IllegalStateException,则可以让该方法抛出它。例如:

代码语言:javascript
复制
public void VisibleSI() {
    if (tipo != 0) {
        throw new IllegalStateException();
    }
    for (JLabel i: lab) i.setVisible(true);
}

但是,更好的方法是为不同的情况定义不同的类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24115773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档