java 界面问题
package通讯录;importjava.awt.Color;importjava.awt.Graphics;importjavax.swing.JFrame;impo...
package 通讯录;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class StudentPage {
public static void main(String[] args) {
new StudentFrame();
}
}
class StudentFrame extends JFrame {
JLabel jl1 = new JLabel("功能列表");//就是这个标签
public StudentFrame() {
this.setBounds(400, 100, 600, 600);
this.setLayout(null);
addControl();
this.setResizable(false);
this.setVisible(true);
}
public void addControl() {//添加控件
jl1.setBounds(50, 100, 60, 20);
this.add(jl1);
}
@Override/*加了下面个方法我那个标签就显示不出来, 为什么????
public void paint(Graphics g) {//画一条线
Color c = g.getColor();
g.setColor(Color.gray);
g.drawLine(150, 0, 150, 650);
g.setColor(c);
}
} 展开
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class StudentPage {
public static void main(String[] args) {
new StudentFrame();
}
}
class StudentFrame extends JFrame {
JLabel jl1 = new JLabel("功能列表");//就是这个标签
public StudentFrame() {
this.setBounds(400, 100, 600, 600);
this.setLayout(null);
addControl();
this.setResizable(false);
this.setVisible(true);
}
public void addControl() {//添加控件
jl1.setBounds(50, 100, 60, 20);
this.add(jl1);
}
@Override/*加了下面个方法我那个标签就显示不出来, 为什么????
public void paint(Graphics g) {//画一条线
Color c = g.getColor();
g.setColor(Color.gray);
g.drawLine(150, 0, 150, 650);
g.setColor(c);
}
} 展开
1个回答
展开全部
@Override
public void paint(Graphics g)
{
super.paint(g);
// 画一条线
Color c = g.getColor();
g.setColor(Color.red);
g.drawLine(150, 0, 150, 650);
g.setColor(c);
}
如以上代码所示,应该在pain()函数的第一行增加一条语句:
super.paint(g);
原因是,该方法就是用来渲染控件外观的,如果想覆盖该方法,最好是先调用super.paint(g)方法,以避免对无关的控件的正常渲染。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询