我正在尝试制作一个ArrayList,它处理不同的GUI组件。这个类应该有方法,其中一些方法不适用于所有组件,所以我尝试使用有条件购买,似乎不可能这样解决它。
你能指出解决这个问题的正确方向吗?
代码:
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方法。谢谢你的帮助。
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);}
}发布于 2014-06-09 07:46:59
如果某个方法可用,则在Java中静态地确定对象。它可能不依赖于存储在对象中的数据。
如果不应该调用IllegalStateException,则可以让该方法抛出它。例如:
public void VisibleSI() {
if (tipo != 0) {
throw new IllegalStateException();
}
for (JLabel i: lab) i.setVisible(true);
}但是,更好的方法是为不同的情况定义不同的类。
https://stackoverflow.com/questions/24115773
复制相似问题