我是GUI的初学者。
是否有快速方法将相同的JButton / Image设置为GUI中的多个位置?为了更好地说明,如果我想在我的GUI中的不同位置使用这个JButton 10次,我是否需要创建一个新的JButton(新的ImageIcon ...)10次?
这些按钮不需要任何东西,这只是为了表演。
JButton jb = new JButton(new ImageIcon("myImage.png"));
jb.setLocation(10,10);
jb.setSize(40, 40);
getContentPane().add(jb);
答案 0 :(得分:4)
简短的回答是,您需要多个JButton
实例。
您可以使用可以应用于按钮的多个实例的Action
(Action
的相同实例)。 Action
类包含将用于配置按钮的属性,例如文本和图标属性。
组件(如JButton
)只能位于单个容器中,因此,您需要多个JButton
实例。
请查看How to Use Actions和How to Use Buttons, Check Boxes, and Radio Buttons了解详情......
通常,您应该避免使用setLocation
和setSize
并更多地依赖布局管理器的使用,但是您没有提供足够的上下文来说明这对您是否有用。
答案 1 :(得分:2)
是的,您需要为每个所需的实例创建一个Jbutton对象。
答案 2 :(得分:1)
由于你有很多JButton
都很相似,我建议你声明一个数组JButton[] buttons = new JButton[10];
并使用for循环来创建每个单独的按钮并设置它们的属性。
答案 3 :(得分:1)
如果它只是一个节目,我会做以下几行连续显示10个按钮:
int buttonHeight = 10;
int buttonWidth = 10;
for (int i = 0; i < 10; i++) {
JButton button = new Button("Button " + i);
button.setSize(buttonWidth, buttonHeight);
button.setLocation(10 + i * buttonWidth, 10);
getContentPane().add(button);
}
答案 4 :(得分:0)
import java.util.Scanner;
import javax.swing.*;
import java.awt.*;
class PROB4_CHAL1 extends JFrame
{
JButton b[]=new JButton[10];
public PROB4_CHAL1()
{
setLayout(null);
setVisible(true);
setSize(100,100);
for(int i=0;i<10;i++)
{
b[i]=new JButton(""+i);// or b[i]=new JButton(new ImageIcon("path"));
b[i].setBounds(i*10,i*20,50,20);
add(b[i]);
}
}
public static void main(String[] args)
{
new PROB4_CHAL1();
}
}
您可以创建'JButton [10]'的数组。