मैं लाइन 2 डी की चौड़ाई बढ़ाना चाहता हूं। मुझे ऐसा करने का कोई तरीका नहीं मिला। क्या मुझे वास्तव में इस उद्देश्य के लिए एक छोटी आयत बनाने की आवश्यकता है?
जवाबों:
आपको ऑब्जेक्ट setStroke
का एक स्ट्रोक सेट करने के लिए उपयोग करना चाहिए Graphics2D
।
Http://www.java2s.com पर उदाहरण आपको कुछ कोड उदाहरण देता है।
निम्न कोड नीचे दी गई छवि तैयार करता है:
import java.awt.*;
import java.awt.geom.Line2D;
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) {
JFrame jf = new JFrame("Demo");
Container cp = jf.getContentPane();
cp.add(new JComponent() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
g2.draw(new Line2D.Float(30, 20, 80, 90));
}
});
jf.setSize(300, 200);
jf.setVisible(true);
}
}
(ध्यान दें कि setStroke
विधि Graphics
वस्तु में उपलब्ध नहीं है । आपको इसे किसी Graphics2D
वस्तु में डालना होगा ।)
क्या है Stroke
:
BasicStroke क्लास ग्राफिक्स प्राइमेटिव्स की रूपरेखा के लिए रेंडरिंग विशेषताओं के एक बेसिक सेट को परिभाषित करता है, जो कि Graphics2D ऑब्जेक्ट के साथ प्रदान किया जाता है, जिसमें इसका स्ट्रोके गुण इस BasicStroke पर सेट होता है।
https://docs.oracle.com/javase/7/docs/api/java/awt/BasicStroke.html
ध्यान दें कि Stroke
सेटिंग:
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
लाइन की चौड़ाई सेट कर रहा है, क्योंकि BasicStroke(float width)
:
निर्दिष्ट लाइन चौड़ाई और टोपी के लिए डिफ़ॉल्ट मानों और शैलियों में शामिल होने के साथ एक ठोस बेसिकस्ट्रोक का निर्माण करता है।
और, यह अन्य तरीकों को भी प्रभावित करता है जैसे Graphics2D.drawLine(int x1, int y1, int x2, int y2)
और Graphics2D.drawRect(int x, int y, int width, int height)
:
ग्राफिक्स 2 डी इंटरफेस के तरीके जो एक स्ट्रोक ऑब्जेक्ट द्वारा लौटाए गए आउटलाइन शेप का उपयोग करते हैं, में ड्रॉलाइन, ड्रावर, ड्रॉ राउंडरक्ट, ड्रॉऑवल, ड्रॉएप्ली, ड्रापॉलिफ़लाइन और ड्रॉपोलिऑन जैसे तरीके शामिल हैं।
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)