मुझे उम्मीद है कि मेरे फ्रेम के हिस्से में JTextArea है लेकिन यह पूरी तरह से व्याप्त है। मैं यहां त्रुटि का पता नहीं लगा सकता।

import java.awt.*;    
import javax.swing.*;

public class EchoServer 
{
   public static void main(String args[])
   {
       CalcFrame c = new CalcFrame();
       CalcTextArea a = new CalcTextArea();
   } 
}

class CalcTextArea 
{
    JTextArea historyDisplayer  = new JTextArea("",50,20);
    CalcTextArea()
    {  
          //historyDisplayer.setVisible(true);
          historyDisplayer.insert("Hello World", 0);              
          Color bg = new Color(23,34,56);              
          historyDisplayer.setBackground(bg);               
          historyDisplayer.setBackground(bg);
    }       
}

class CalcFrame extends CalcTextArea
{
    JFrame frame = new JFrame(); 
    CalcFrame()
    {
        frame.setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
        frame.setTitle("CALCULATOR");
        frame.setVisible(true);
        frame.add(historyDisplayer);

    }
    private static int  DEFAULT_WIDTH = 299,DEFAULT_HEIGHT = 190; 
}
2
Muthu Ganapathy Nathan 13 अक्टूबर 2011, 05:36
2
frame.setLayout(null);frame.add(historyDisplayer); कोशिश करें लेकिन वास्तव में आपको एक लेआउट मैनेजर का उपयोग करना चाहिए।
 – 
Bala R
13 अक्टूबर 2011, 05:43
1
अरे .. आप अशक्त लेआउट का सुझाव क्यों देते हैं? तुम्हें पता है कि यह एक पाप है जो बिना किसी आनंद के बहुत दर्द देगा ;-)
 – 
kleopatra
13 अक्टूबर 2011, 11:08
+1 पोस्ट करने के लिए sscce.org
 – 
mKorbel
13 अक्टूबर 2011, 11:57

2 जवाब

सबसे बढ़िया उत्तर

JFrame डिफ़ॉल्ट रूप से BorderLayout का उपयोग करता है। जब आप किसी BorderLayout घटक जैसे JFrame पर कुछ जोड़ते हैं, तो यह BorderLayout के बहुत केंद्र में जुड़ जाएगा (यदि आपने यह निर्दिष्ट नहीं किया है कि घटक को कहां जोड़ना है), और यह लेता है पूरे JFrame तक।

आपको उन्हें समायोजित करने के लिए सही लेआउट का उपयोग करना चाहिए।

7
trashgod 13 अक्टूबर 2011, 17:06

आप निरपेक्ष लेआउट का उपयोग करने का प्रयास कर सकते हैं। यह लेआउट पैलेट पर है।

या इसे इसके साथ सक्षम करें:

frame = new JFrame();
... //your code here

// to set absolute layout.
frame.getContentPane().setLayout(null);

इस तरह, आप अपनी पसंद के किसी भी स्थान पर स्वतंत्र रूप से नियंत्रण रख सकते हैं।

0
Aruman 13 मार्च 2013, 01:44