【发布时间】:2014-10-02 23:29:27
【问题描述】:
我正在尝试构建一个简单的椭圆滑块程序。 我将窗口的背景颜色设为橙色,但它没有将背景设置为橙色,而是灰色背景。此外,滑块无法传递适当的值。因为当我滑动增加椭圆的大小时,它变成了一个奇怪的形状,分散了它原来的椭圆形状。
这是我的完整代码:
package drawoval;
import java.awt.Color;
import javax.swing.JFrame;
public class Drawoval {
public static void main(String[] args) {
TheWindows tw=new TheWindows();
tw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tw.setSize(230,280);
tw.setVisible(true);
}
}
package drawoval;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class TheWindows extends JFrame{
private JSlider slider;
private Oval myPanel;
public TheWindows(){
super("The title");
myPanel=new Oval();
myPanel.setBackground(Color.ORANGE);
slider=new JSlider(SwingConstants.HORIZONTAL,0, 200,10);
slider.setMajorTickSpacing(10);
slider.setPaintTicks(true);
slider.addChangeListener(
new ChangeListener(){
public void stateChanged(ChangeEvent e){
myPanel.setNewD(slider.getValue());
}
}
);
add(slider,BorderLayout.SOUTH);
add(myPanel,BorderLayout.CENTER);
}
}
package drawoval;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Oval extends JPanel {
private int d = 10;
public void paintComponent(Graphics g) {
super.paintComponents(g);
g.fillOval(10, 10, d, d);
}
public void setNewD(int newD) {
d = (newD >= 0 ? newD : 10);
repaint();
}
public Dimension getPreferredDim() {
return new Dimension(200, 280);
}
public Dimension getMinSize() {
return getPreferredDim();
}
}
【问题讨论】:
标签: java swing user-interface slider jpanel