ฉันกำลังรวบรวมแอปพลิเคชัน Swing ที่ฉันมักต้องการแทนที่เนื้อหาของ JPanel การทำเช่นนี้ฉันโทรแล้วเพิ่มเนื้อหาใหม่ของฉันแล้วโทรremoveAll()
revalidate()
อย่างไรก็ตามฉันพบว่าเนื้อหาเก่ายังคงปรากฏให้เห็นจริง (แม้ว่าจะบดบังด้วยเนื้อหาใหม่) ถ้าฉันเพิ่มสายไปrepaint()
เพิ่มเติมจะrevalidate()
ทำงานได้ตามที่คาดหวัง
ฉันแน่ใจในโอกาสอื่น ๆ ที่ฉันเคยพบว่าแค่โทรrevalidate()
ก็เพียงพอแล้ว
ดังนั้นโดยทั่วไปคำถามของฉันคือ - ฉันควรจะต้องเรียกทั้งฟังก์ชั่นและถ้าไม่ฉันควรจะเรียกพวกเขาเมื่อใด