小编Rae*_*hid的帖子

如何从文件夹中的图像将图标设置为JLabel?

每当从JComboBox中选择一个项目时,我都试图从图像文件夹中将图标设置为JLabel.JComboBox中的项目名称和文件夹中图像的名称相同.因此,无论何时从JComboBox中选择一个项目,都应将具有相同名称的相应图像设置为JLabel的图标.我想做这样的事情.

private void cmb_movieselectPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){                                                             
        updateLabel(cmb_moviename.getSelectedItem().toString());
}





protected void updateLabel(String name) {
        ImageIcon icon = createImageIcon("C:\\Users\\xerof_000\\Pictures\\tmspictures\\" + name + ".jpg");
        if(icon != null){
            Image img = icon.getImage(); 
            Image newimg = img.getScaledInstance(lbl_pic.getWidth(), lbl_pic.getHeight(),  java.awt.Image.SCALE_SMOOTH);
            icon = new ImageIcon(newimg);
            lbl_pic.setIcon(icon);
            lbl_pic.setText(null);
        }
        else{
            lbl_pic.setText("Image not found");
            lbl_pic.setIcon(null);
        }
    }





protected static ImageIcon createImageIcon(String path) {
        URL imgURL;
        imgURL = NowShowing.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我认为问题出现在"C:\ Users\xerof_000\Pictures\tmspictures \"中我尝试使用"C:/ Users/xerof_000/Pictures/tmspictures /",但即使这样也行不通.无论我做什么,它只在JLabel上显示"Image not found".

java swing jlabel jcombobox imageicon

6
推荐指数
1
解决办法
6万
查看次数

从Java中保存MySQL中的图像

我试图从Java swing应用程序中保存MySQL数据库中的图像.我正在使用JFileChsoser来获取图像的路径.然后转换文件,以便它可以保存在BLOB类型的MySQL列中.但是我尝试保存的每个图像都没有正确保存或正确转换.有人能告诉我这里我做错了什么吗?

private void btn_choosepicActionPerformed(java.awt.event.ActionEvent evt) {
    JFileChooser picchooser = new JFileChooser();
    picchooser.setDialogTitle("Select Image");
    picchooser.showOpenDialog(null);
    File pic=picchooser.getSelectedFile();
    path= pic.getAbsolutePath();
    txt_path.setText(path.replace('\\','/'));
    try{
        File image = new File(path);
        FileInputStream fis = new FileInputStream(image);
        ByteArrayOutputStream baos= new ByteArrayOutputStream();
        byte[] buff = new byte[1024];
        for(int readNum; (readNum=fis.read(buff)) !=-1 ; ){
            baos.write(buff,0,readNum);
        }
        userimage=baos.toByteArray();
    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }     
}
Run Code Online (Sandbox Code Playgroud)

然后在此之后将其保存到数据库中.

private void btn_saveActionPerformed(java.awt.event.ActionEvent evt) {
    String user= txt_username.getText();
    try{
        String sql="insert into imgtst (username,image) values ('"+user+"','"+userimage+"')";
        pst=con.prepareStatement(sql);
        pst.executeUpdate();
        JOptionPane.showMessageDialog(null, "Saved");
    }
    catch(Exception e){ …
Run Code Online (Sandbox Code Playgroud)

java mysql swing blob image

3
推荐指数
1
解决办法
3万
查看次数

JCheckBox数组初始化或访问问题

为了使我的程序更短,我使用数组和循环来完成一项任务,但我遇到了问题.我不确定我是在初始化数组错误还是错误地访问它.我正在初始化一个40个JCheckBoxes的数组.

JCheckBox[] seatz={chk_a1,chk_a2,chk_a3,chk_a4,chk_a5,chk_a6,chk_a7,chk_a8,chk_a9,chk_a10,chk_b1,chk_b2...chk_d10};
Run Code Online (Sandbox Code Playgroud)

每当更改JCheckBox的项状态时,seatChecker()都会调用该方法

public void seatChecker(JCheckBox chkbox) {
    if(chkbox.isSelected()){
        chkboxcount=chkboxcount+1;
    } else {
        chkboxcount=chkboxcount-1;
    }
    if(chkboxcount>=totalseats){
        disableSeats();
    } else {
        enableSeats();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果计数达到某个限制,我将禁用JCheckBoxes,否则启用它们.这两种方法的代码是

    public void disableSeats() {
    for(int x = 0; x < 40 ; x++) {
        if(seatz[x].isSelected()==false){
            seatz[x].setEnabled(false);
        }
    }
}

public void enableSeats() {
    for(int x = 0; x < 40 ; x++) {
        seatz[x].setEnabled(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了错误Exception in thread "AWT-EventQueue-0" java.lang.NullPointerExceptionif(seatz[x].isSelected()==false)seatz[x].setEnabled(true)什么是我在这里做错了吗?

java arrays swing initialization jcheckbox

2
推荐指数
1
解决办法
238
查看次数

如何在使用之前初始化数组元素?

我必须编写一个程序来说明指针与数组和函数的用法.

#include <stdio.h>
#include <conio.h>

#define ROWS 3
#define COLS 4

void print(int rows, int cols, int *matrix);

void main(void)
{
    int a[ROWS*COLS],i;
   for(i=0;i<ROWS*COLS;i++)
   {
        a[i]=i+1;
   }
   print(ROWS,COLS,a);
    getch();
}

void print(int rows, int cols, int *matrix)
{
    int i,j,*p=matrix;
    for(i=0;i<rows;i++)
   {
    for(j=0;j<cols;j++)
      {
        printf("%3d",*(p+(i*cols)+j));
      }
      printf("\n");
   }
}
Run Code Online (Sandbox Code Playgroud)

上面的程序打印出一个预定义行和列的矩阵.我想修改程序,以便用户输入行和列.

#include <stdio.h>
#include <conio.h>

void print(int rows, int cols, int *matrix);

void main(void)
{
    int ROWS,COLS,a[ROWS*COLS],i;
   printf("Enter the number of rows: ");
   scanf("%d",ROWS);
   printf("\nEnter the number of columns: ");
   scanf("%d",COLS); …
Run Code Online (Sandbox Code Playgroud)

c arrays initialization

1
推荐指数
1
解决办法
415
查看次数

如何以'yyyy-mm-dd'格式将日期列表放在JComboBox中?

我试图使用此代码将当前日期和第二天的日期放在JComboBox中

private void dateCombo(){
    Calendar cal = new GregorianCalendar();
    int month =cal.get(Calendar.MONTH);
    int year =cal.get(Calendar.YEAR);
    int day =cal.get(Calendar.DAY_OF_MONTH);
    cmb_date.addItem(+year+"-"+(month+1)+"-"+day);
    cmb_date.addItem(+year+"-"+(month+1)+"-"+(day+1));
}
Run Code Online (Sandbox Code Playgroud)

但它以"yyyy-md"格式显示日期,我希望它以'yyyy-mm-dd'格式显示.

我想我可以用

Date date = new Date();
SimpleDateFormat  sdf = new SimpleDateFormat("yyyy/MM/dd");
txt_date.setText(sdf.format(date));
Run Code Online (Sandbox Code Playgroud)

以'yyyy-mm-dd'格式获取当前日期,但如何处理第二天的日期?

java swing date date-format jcombobox

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×4

swing ×4

arrays ×2

initialization ×2

jcombobox ×2

blob ×1

c ×1

date ×1

date-format ×1

image ×1

imageicon ×1

jcheckbox ×1

jlabel ×1

mysql ×1