如何创建达到一定数量的程序?我正在使用JPanels创建一个标志,但我需要继续前进,直到达到350000.这意味着必须在每行中相应地更改每个数字。我想创建一个程序,它给我JPanel和setbackground中的数字直到350000.同样在窗格中。
到目前为止(仅4);
import javax.swing。; import java.awt。;
公共课阿尔巴尼亚{
from difflib import get_close_matches
def suggestion(first_name, last_name):
names = []
my_request = get_request("https://www.mysportsfeeds.com/api/feed/pull/nfl/2016-2017-regular/active_players.json")
for n in my_request['activeplayers']['playerentry']:
if last_name == n['player']['LastName'] and first_name == n['player']['FirstName']:
pass
else:
names.append(n['player']['FirstName'] + " " + n['player']['LastName'])
suggest = get_close_matches(first_name + " " + last_name, names)
return "did you mean " + "".join(suggest) + "?"
print suggestion("mattthews ", "stafffford") #should return Matthew Stafford
}
答案 0 :(得分:1)
您所要求的答案是在循环中添加面板
JFrame albania = new JFrame();
albania.setTitle("Albania");
albania.setSize(300, 200);
albania.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = albania.getContentPane();
pane.setLayout(new GridLayout(2, 2));;
for(int i =0; i < 350000; i++){
JPanel panel1 = new JPanel();
panel1.setBackground(Color.red);
JPanel panel2 = new JPanel();
pane.add(panel1);
}
albania.setVisible(true);
如果你唯一的目标是创建一个彩色网格,你应该使用JLabel而不是JPanels ... JPanel是一个更复杂的对象,并且导致如此多的并发实例会导致你的应用程序性能不佳
答案 1 :(得分:0)
这将创建一个350,000个JPanel对象的ArrayList,并将它们添加到您的JFrame中。正如上面提到的那样,如果有足够的内存来完成操作,这可能会导致性能非常差。
public static void main(String[] args) {
JFrame albania = new JFrame();
ArrayList<JPanel> panels = new ArrayList<>();
albania.setTitle("Albania");
albania.setSize(300, 200);
albania.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel newPanel;
for (int x = 0; x<350000; x++) {
newPanel = new JPanel();
newPanel.setBackGround(Color.red);
panels.add(new JPanel());
}
Container pane = albania.getContentPane();
pane.setLayout(new GridLayout(2, 2));
for (int x = 0; x<350000; x++) {
pane.add(panels.get(x));
}
albania.setVisible(true);
}
答案 2 :(得分:0)
与其他人建议的一样,需要一个for循环。但是,您可能需要再次访问350,000个JPanel之一。虽然这会占用大量内存,但要制作一个数组。
’JFrame albania = new JFrame();
albania.setTitle("Albania");
albania.setSize(300, 200);
albania.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = albania.getContentPane();
pane.setLayout(new GridLayout(2, 2));
JPanel[] panels = new JPanel()[350000];
for(int i =0; i < 350000; i++){
panels[i] = new JPanel();
panels[i]setBackground(Color.red);
pane.add(panels[i]);
}
albania.setVisible(true)`