पर क्लिक करके खींचें और माउस खींचें जब मैं स्विंग कक्षाओं का उपयोग करके ग्रिड UI (5 * 5) बनाने की कोशिश कर रहा हूं। मैंने एक नेस्टेड लूप की कोशिश की और जेएफआरएएम को गतिशील रूप से एक जेपीनल जोड़ दिया। और जब भी उपयोगकर्ता क्लिक करता है और उस पर गिरता है तो मैंने प्रत्येक जेपीनल के पृष्ठभूमि रंग को बदलने की भी कोशिश की। लेकिन मेरे कोड के साथ प्रत्येक सेल के बीच भारी अंतर हैं और मैं ड्रैग इवेंट को काम नहीं कर सकता।स्विंग क्लास जावा का उपयोग करके ग्रिड कैसे आकर्षित करें और
public class clsCanvasPanel extends JPanel {
private static final int intRows = 5;
private static final int intCols = 5;
private List<JPanel> jpllist = new ArrayList<JPanel>();
public clsCanvasPanel() {
/*
*
* Add eventListener to individual JPanel within CanvasPanel
*
*
* TODO :
* 1) mousePressed --> update Temperature and HeatConstant of clsElement Class
* 2) start a new thread and
* 3) call clsElement.run() method
*
*
* Right Now : it updates the colours of the JPanel
* */
MouseListener mouseListener = new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
JPanel panel = (JPanel) e.getSource();
Component[] components = panel.getComponents();
for (Component component : components) {
component.setVisible(!component.isVisible());
component.setBackground(new Color(255,255,0));
}
panel.revalidate();
panel.repaint();
}
};
//TODO : refactoring
GridLayout gdlyPlates = new GridLayout();
gdlyPlates.setColumns(intCols);
gdlyPlates.setRows(intRows);
gdlyPlates.setHgap(0);
gdlyPlates.setVgap(0);
setLayout(gdlyPlates);
//TODO : refactoring
for (int row = 0; row < intRows; row++) {
for (int col = 0; col < intCols; col++) {
JPanel panel = new JPanel(new GridBagLayout());
panel.setOpaque(false);
JPanel jl = new JPanel();
jl.setVisible(true);
panel.add(jl);
panel.addMouseListener(mouseListener);
jpllist.add(panel);
add(panel);
}
}
}
}
तो अब मैं आगे प्रत्येक कोशिका का रंग बदलने के एक पैनल बना सकते हैं और उस पर ग्रिड आकर्षित करने के लिए कोशिश कर रहा हूँ, तो ग्रिड पर माउस स्थिति का पता लगाता है,।
क्या कोई मुझे जेपीनेल पर इस ग्रिड को कार्यान्वित करने और किसी चुने हुए सेल के रंग को बदलने के बारे में कुछ सलाह दे सकता है।
हैलो, मुझे एहसास है कि यह एक पुरानी पुरानी पोस्ट है। अरे @ मैडप्रोग्रामर, आपका कोड अद्भुत है!, मैंने इसे एक असाइनमेंट के लिए इसके साथ टिंकर करने के लिए पकड़ लिया, लेकिन मैं एक अचार में हूं, यह वही है जो मुझे चाहिए, लेकिन मुझे खिड़की 1080x760 बनाने, 1700 कोशिकाओं को बनाने और प्रत्येक सेल 20x20 बनाने की आवश्यकता है। अब मैंने खिड़की को फिर से बदल दिया है, और मैंने 1700 कोशिकाओं को बनाया है, मेरी समस्या यह है कि जब मैं कोशिकाओं को 20x20 में आकार देने का प्रयास करता हूं तो माउस श्रोता पागल हो जाता है और ठीक से काम नहीं करता ... मैंने कोशिश की है सेलविड्थ और सेलहेइट चर बदलना ... लेकिन यह इतना अच्छा काम नहीं कर रहा है ... कोई विचार? – Twhite1195
@ Twhite1195 कौन सा संस्करण, पहला या दूसरा? – MadProgrammer
@MadProgrammer सबसे पहले, दूसरा काम करता था ... जब तक मैंने कक्षों का आकार बदल दिया – Twhite1195