मेरे पास दो कक्षाएं हैं, एक जहां ग्रिड सेट है औरअन्य जहां GUI बनाया जाता है। मैं चाहता हूं कि पहली कक्षा से ग्रिड को दूसरी कक्षा में jPanel में डाला जाए। पहला ग्रिड एक चार ग्रिड है और ऐसे नंबरों से भरा होता है जो बेतरतीब ढंग से शुरू होते हैं। मुझे काम करने में परेशानी हो रही है कि कैसे ग्रिड को जेंपेल में डालें क्योंकि यह अपेक्षा से अधिक जटिल है। मैं कई चीजों की कोशिश की है, लेकिन havent किसी भी भाग्य था .. किसी की मदद?
//set grid class
public void setgrid() {
Random ran = new Random();
for (int i = 0; i < X; i++) {
for (int j = 0; j < Y; j++) {
int num = ran.nextInt(10);
if (num == 4) {
grid[i][j] = "F";
} else if (num == 9) {
grid[i][j] = "O";
} else {
grid[i][j] = " ";
}}}
// Panel Class
Panel = new JPanel(new GridLayout(X, Y));
for (int i = 0; i < X; i++) {
for (int j = 0; j < Y; j++) {
world[i][j] = new JPanel();
world[i][j].setBackground(Color.white);
world[i][j].setBorder(BorderFactory
.createLineBorder(Color.black));
Panel.add(world[i][j]);
यह सुनिश्चित करने के लिए क्या नहीं है कि क्या पैनल में ग्रिड को जोड़ना होगा
उत्तर:
उत्तर № 1 के लिए 1"मुझे काम करने में परेशानी हो रही है कि कैसे ग्रिड को जेंपेल में सम्मिलित करें क्योंकि यह अपेक्षा से अधिक जटिल है। मैंने कई चीजों की कोशिश की है, लेकिन havent की कोई किस्मत थी .. किसी ने भी मदद की?"
यह निश्चित नहीं है कि आप वास्तव में क्या कर रहे हैं या आप क्या कर रहे हैं या गलत कर रहे हैं, लेकिन एक बात जो मैं सुझा सकता हूं वह है उपयोग करना JLabel
रों। वे पाठ को मापदंडों के रूप में लेते हैं, जो लेबल में पाठ दिखाते हैं। JPanel
दूसरी ओर, को खींचने की आवश्यकता है (जिसका अर्थ है कि आपको वास्तव में पाठ को स्वयं खींचने की आवश्यकता है)।
इस कार्यक्रम का परीक्षण करें, यह देखने के लिए कि मैं किस बारे में बात कर रहा हूं
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class DrawGrid {
public DrawGrid() {
int[][] grid = getGrid();
JPanel panel = new JPanel(new GridLayout(10, 10));
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
panel.add(new JLabel(String.valueOf(grid[i][j])));
}
}
JFrame frame = new JFrame();
frame.add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public int[][] getGrid() {
int[][] grid = new int[10][10];
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
grid[i][j] = i;
}
}
return grid;
}
public static void main(String[] args) {
new DrawGrid();
}
}
यहां वह कोड है जहां मैं जोड़ता हूं JLabel
के लिए है JPanel
JPanel panel = new JPanel(new GridLayout(10, 10));
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[i].length; j++) {
panel.add(new JLabel(String.valueOf(grid[i][j])));
}
}
उसी तरह से आप सीमाओं और पृष्ठभूमि को जोड़ते हैं JPanel
, आप भी कर सकते हैं JLabel