Я не могу придумать другой способ сделать это. Я пытаюсь получить имя переменной кнопки java, которую я уже объявил, чтобы я мог l oop через базу данных (в которой есть экранное поле для доступа к нужному продукту) и установить нужный текст для этого JButton. Я могу сделать это, вручную установив каждый текст jButtons или установив жестко кодированный текст через Netbeans GUI. Но я искал, есть ли более эффективный способ сделать это.
Код, который может достичь этого
ArrayList<Products> myList = myProductsDataHandler.getAllProducts();
myList.forEach((var i) ->
{
if (i.getScreen() == 0)
{
btnProduct1.setText(i.getProductName());
}
else if (i.getScreen() == 1)
{
btnProduct2.setText(i.getProductName());
}
else if (i.getScreen() == 2)
{
btnProduct3.setText(i.getProductName());
}
else if (i.getScreen() == 3)
{
btnProduct4.setText(i.getProductName());
}
else if (i.getScreen() == 4)
{
btnProduct5.setText(i.getProductName());
}
else if (i.getScreen() == 5)
{
btnProduct6.setText(i.getProductName());
}
else if (i.getScreen() == 6)
{
btnProduct7.setText(i.getProductName());
}
else if (i.getScreen() == 7)
{
btnProduct8.setText(i.getProductName());
}
else if (i.getScreen() == 8)
{
btnProduct9.setText(i.getProductName());
}
Код Мне нужна помощь с
int btnInt = 1;
String btnStr = "btnProduct";
btnCatagory1.setText(i.getCategory());
Component[] components = pnlOrder.getComponents();
for(Component component : components)
{
if(component instanceof JButton)
{
System.out.println(btnStr+btnInt);
JButton button = (JButton) component;
System.out.println(button.getName());
if (button.getName().contains(btnStr+btnInt))
{
btnProduct1.setText(i.getProductName());
btnInt++;
}
}
}
});
Это система Epos, и когда программа выполняется, я хочу получить текст из базы данных и установить для нее нужные кнопки. Всего 9 кнопок. Я попытался getName (), но он возвращает ноль. Есть ли еще что-нибудь, чего я могу достичь? Спасибо