📄 j_painter.java
字号:
m_lab1.setToolTipText("选择文件保存的格式");
Container diagcon = m_diag.getContentPane();
diagcon.setLayout(new FlowLayout(FlowLayout.LEFT));
diagcon.add(m_lab);
diagcon.add(m_text);
diagcon.add(m_lab1);
diagcon.add(m_combobox);
diagcon.add(m_button);
m_diag.setLocation(152, 120);
m_diag.setResizable(true);//构造对话框
m_button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent eee)
{
m_filename = m_text.getText();
int ie = m_combobox.getSelectedIndex();
if (ie == 0)
m_formatname = "jpg";
else if (ie == 1)
m_formatname = "bmp";
else if (ie == 2)
m_formatname = "png";
try
{
File out = new File(m_filename + "." + m_formatname);
if (m_buffImage != null)
ImageIO.write(m_buffImage, m_formatname, out);
}
catch (IOException eev)
{
}
m_diag.setVisible(false);
}// actionperformed
});// BUTTON响应确定
m_diag.setDefaultLookAndFeelDecorated(true);
m_diag.setSize(300, 150);
m_diag.setVisible(true);//
System.exit(0);
}
else if(a==1)
{System.exit(0);}
}
}
// deal the save
class J_dealSave implements ActionListener //保存图像
{
String m_filename = new String("");//路径名
String m_formatname = new String("");//保存格式名
public void actionPerformed(ActionEvent event)
{
String name[] = { new String("jpg"), new String("bmp"),
new String("png") };
final JDialog m_diag = new JDialog(m_fatherFrame, "Save dialog ",
true);
m_diag.setDefaultLookAndFeelDecorated(true);
JLabel m_lab = new JLabel("输入保存路径名", null, JLabel.LEFT);
JLabel m_lab1 = new JLabel("选择文件保存格式", null, JLabel.LEFT);
final JTextField m_text = new JTextField("", 24);
final JComboBox m_combobox = new JComboBox(name);
JButton m_button = new JButton("确定");
m_lab.setToolTipText("输入文件保存的路径名和文件名,如果只输入文件名,将被保存在本地路径中");
m_lab1.setToolTipText("选择文件保存的格式");
Container diagcon = m_diag.getContentPane();
diagcon.setLayout(new FlowLayout(FlowLayout.LEFT));
diagcon.add(m_lab);
diagcon.add(m_text);
diagcon.add(m_lab1);
diagcon.add(m_combobox);
diagcon.add(m_button);
m_diag.setLocation(152, 120);
m_diag.setResizable(true);//构造对话框
m_button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent eee)
{
m_filename = m_text.getText();
int ie = m_combobox.getSelectedIndex();
if (ie == 0)
m_formatname = "jpg";
else if (ie == 1)
m_formatname = "bmp";
else if (ie == 2)
m_formatname = "png";
try
{
File out = new File(m_filename + "." + m_formatname);
if (m_buffImage != null)
ImageIO.write(m_buffImage, m_formatname, out);
}
catch (IOException eev)
{
}
m_diag.setVisible(false);
}// actionperformed
});// BUTTON响应确定
m_diag.setDefaultLookAndFeelDecorated(true);
m_diag.setSize(300, 150);
m_diag.setVisible(true);//
}
}// end of deal save
class J_dealEditClear implements ActionListener //清楚矩形框选择
{
public void actionPerformed(ActionEvent ev)
{
try {
if (b_isExisteRecChoose)
{
for (int kk = 0; kk < (cordinate[2] - cordinate[0] + 1); kk++) {
m_buffImage.setRGB(cordinate[0] + kk, cordinate[1],
rec_pixel[kk]);
}
for (int tt = 0; tt < (cordinate[3] - cordinate[1]); tt++) {
m_buffImage.setRGB(cordinate[0], tt + cordinate[1],
rec_pixel[tt * (cordinate[2] - cordinate[0])]);
}
for (int mm = 0; mm < (cordinate[3] - cordinate[1]); mm++) {
m_buffImage.setRGB(cordinate[2], mm + cordinate[1],
rec_pixel[(1 + mm)
* (cordinate[2] - cordinate[0]) - 1]);
}
for (int mm = 0; mm < (cordinate[2] - cordinate[0]); mm++) {
m_buffImage
.setRGB(cordinate[0] + mm, cordinate[3],rec_pixel[mm
+ (cordinate[2] - cordinate[0])
* (cordinate[3] - cordinate[1] - 1) - 1]);
}
}//从保存象素中取出清除图像
b_isExisteRecChoose = false;
repaint();
}
catch (Exception ee)
{
}
}
}// end if J_Editclear
class J_dealEditCut implements ActionListener //剪切图像
{
public void actionPerformed(ActionEvent ev)
{
Graphics2D g2d = m_buffImage.createGraphics();
g2d.setColor(Color.white);
g2d.fillRect(cordinate[0], cordinate[1], cordinate[2]
- cordinate[0] + 1, cordinate[3] - cordinate[1] + 1);
repaint();//调用矩形框来清除图像
}
}// end of JEdit
class J_dealEditPaste implements ActionListener //粘贴图像选取
{
public void actionPerformed(ActionEvent ev)
{
m_buffImage.setRGB(m_clickedx, m_clickedy, cordinate[2]
- cordinate[0], cordinate[3] - cordinate[1], rec_pixel, 0,
cordinate[2] - cordinate[0]);
repaint();
}
}// end of JEdit
class J_dealColorChange implements ActionListener //颜色替换
{
public void mb_draw(int m_INTc1, int m_INTc2, double region)
{
int pix[] = new int[m_Width * m_Height];
int reg = (int) region;
m_pixelGrabber = new PixelGrabber(m_buffImage, 0, 0, m_Width,
m_Height, pix, 0, m_Width);
try
{
m_pixelGrabber.grabPixels();//获取整个图像所有的象素
}
catch (InterruptedException e)
{
System.out.println("Interrupted Error");
return;
}
if ((m_pixelGrabber.getStatus() & ImageObserver.ABORT) != 0)
{
System.out.println("error");
return;
}
for (int m = 0; m < m_Height; m++)
{
for (int n = 0; n < m_Width; n++)
{
if (Math.abs(pix[m * m_Width + n] - m_INTc1) < reg)//判断图像中象素与给定的颜色值
{
Graphics2D g2g = m_buffImage.createGraphics();
m_buffImage.setRGB(n, m, m_INTc2);//替换
repaint();
}
} // for2
} // for1
}// end of mb_draw
public void actionPerformed(ActionEvent eee) //响应菜单
{
final JDialog m_diag = new JDialog(m_fatherFrame,
"ColorReplace dialog ", true);
JLabel m_lab = new JLabel("浮点数值", null, JLabel.LEFT);
JLabel m_lab1 = new JLabel("原先颜色", null, JLabel.LEFT);
JLabel m_lab2 = new JLabel("替换颜色", null, JLabel.LEFT);
JLabel m_labRGB[] = { new JLabel("R"), new JLabel("G"),
new JLabel("B"), new JLabel("R"), new JLabel("G"),
new JLabel("G") };
final JTextField m_text = new JTextField("", 10);
final JTextField m_textRGB[] = { new JTextField("", 3),
new JTextField("", 3), new JTextField("", 3),
new JTextField("", 3), new JTextField("", 3),
new JTextField("", 3) };
JTextArea m_textArea = new JTextArea(
" 说明:\n 用户输入一个浮点数,\n以及两个颜色值,\n当图形的某一个像素小于\n第一个颜色值,这个颜色值\n将被第二个颜色替换.",
4, 15);
m_textArea.setEditable(false);
m_textArea.setFont(new Font("宋体", Font.PLAIN, 15));
JButton m_button = new JButton("确定");
JButton m_button1 = new JButton("取消");
JButton m_button_c1 = new JButton("<<",
new ImageIcon("tupian/T1.gif"));
JButton m_button_c2 = new JButton("<<",
new ImageIcon("tupian/T2.gif"));
m_button_c1.setToolTipText("选择原有颜色");
m_button_c2.setToolTipText("选择替换颜色");
Container diagcon = m_diag.getContentPane();
diagcon.setLayout(new FlowLayout(FlowLayout.LEFT));
JPanel[] mpanel = new JPanel[4];
for (int ii = 0; ii < 4; ii++)
{
mpanel[ii] = new JPanel();
diagcon.add(mpanel[ii]);
}
mpanel[0].add(m_lab);
mpanel[0].add(m_text);
mpanel[1].add(m_lab1);
mpanel[1].add(m_labRGB[0]);
mpanel[1].add(m_textRGB[0]);
mpanel[1].add(m_labRGB[1]);
mpanel[1].add(m_textRGB[1]);
mpanel[1].add(m_labRGB[2]);
mpanel[1].add(m_textRGB[2]);
mpanel[1].add(m_button_c1);
mpanel[2].add(m_lab2);
mpanel[2].add(m_labRGB[3]);
mpanel[2].add(m_textRGB[3]);
mpanel[2].add(m_labRGB[4]);
mpanel[2].add(m_textRGB[4]);
mpanel[2].add(m_labRGB[5]);
mpanel[2].add(m_textRGB[5]);
mpanel[2].add(m_button_c2);
mpanel[3].add(new JScrollPane(m_textArea));
mpanel[3].add(m_button);
mpanel[3].add(m_button1);
m_lab.setToolTipText("输入一个浮点数值,当它满足小于两个颜色的差时对\r\n将原先颜色替换为新颜色");
m_lab1.setToolTipText("输入被替换的颜色值");
m_lab2.setToolTipText("输入替换的颜色值");
m_button_c1.setPreferredSize(new Dimension(50, 23));
m_button_c2.setPreferredSize(new Dimension(50, 23));
m_diag.setLocation(162, 155);
m_diag.setResizable(true);//初始化对话框
m_button_c1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent eeee)
{
try {
Color m_color_c1 = new Color(0, 0, 0);
m_color_c1 = JColorChooser.showDialog(m_diag, "原先颜色选择",
m_color_c1);
m_textRGB[0].setText(String
.valueOf(m_color_c1.getRed()));
m_textRGB[1].setText(String.valueOf(m_color_c1
.getGreen()));
m_textRGB[2].setText(String.valueOf(m_color_c1
.getBlue()));
} //返回用户选取的颜色值到文本框
catch (Exception ee)
{
}
}
});
m_button_c2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent eee)
{
try
{
Color m_color_c2 = new Color(0, 0, 0);
m_color_c2 = JColorChooser.showDialog(m_diag, "替换颜色选择",
m_color_c2);
m_textRGB[3].setText(String
.valueOf(m_color_c2.getRed()));
m_textRGB[4].setText(String.valueOf(m_color_c2
.getGreen()));
m_textRGB[5].setText(String.valueOf(m_color_c2
.getBlue()));
} //返回用户选取的颜色值到文本框
catch (Exception ee)
{
}
}
});
m_button.addActionListener(new ActionListener() //响应确定按钮
{
public void actionPerformed(ActionEvent ev)
{
try
{
int r1 = Integer.valueOf(m_textRGB[0].getText());
int g1 = Integer.valueOf(m_textRGB[1].getText());
int b1 = Integer.valueOf(m_textRGB[2].getText());
int r2 = Integer.valueOf(m_textRGB[3].getText());
int g2 = Integer.valueOf(m_textRGB[4].getText());
int b2 = Integer.valueOf(m_textRGB[5].getText());
int ic1 = -(~((255 << 24) + (r1 << 16) + (g1 << 8) + b1) + 1);
int ic2 = -(~((255 << 24) + (r2 << 16) + (g2 << 8) + b2) + 1);
//RGB值与Int值的转化
double f = Integer.valueOf(m_text.getText());
mb_draw(ic1, ic2, f);//调用函数来确定替换
m_diag.setVisible(false);
}
catch (Exception e)
{
}
}
});
m_button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ev)
{
m_diag.setVisible(false);
}
});
m_diag.setSize(300, 240);
m_diag.setVisible(true);
}
}// end of deal the colorrepalace
// deal the help
class J_dealHelp implements ActionListener
{
public void actionPerformed(ActionEvent ee)
{
JMenuItem mItem = (JMenuItem) ee.getSource();
if (mItem.getText().equals("About"))
JOptionPane.showMessageDialog(null, "Paiter 1.0 version");
else if (mItem.getText().equals("Introduction"))
{
JDialog diag = new JDialog(m_fatherFrame, "lhsdialog", true);
JTextArea m_textArea = new JTextArea("", 5, 15);
m_textArea.setEditable(false);
Container con = diag.getContentPane();
con.add(new JScrollPane(m_textArea));
diag.setLocation(160, 120);
diag.setResizable(true);
// diag.setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
m_textArea.setFont(new Font("宋体",Font.BOLD,20));
m_textArea.setText("1.本程序可以作出圆,椭圆
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -