用java的swing做一个界面,界面可以新建商品列表,列表要求有自定义字体和图标,并且鼠标滚轮可以控制下滑,隐藏滚动条
时间: 2024-05-11 18:13:58 浏览: 6
以下是一个使用Java Swing创建的简单商品列表界面,包括自定义字体和图标,并隐藏了滚动条。鼠标滚轮可以控制下滑。
```java
import javax.swing.*;
import java.awt.*;
public class ProductListGUI extends JFrame {
private JList<String> productList;
private DefaultListModel<String> productModel;
public ProductListGUI() {
setTitle("Product List");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// 创建商品列表
productModel = new DefaultListModel<>();
productList = new JList<>(productModel);
productList.setFixedCellWidth(200);
productList.setFixedCellHeight(50);
productList.setFont(new Font("Arial", Font.BOLD, 20));
productList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// 添加商品图标
ImageIcon icon = new ImageIcon("product.png");
Image image = icon.getImage().getScaledInstance(30, 30, Image.SCALE_SMOOTH);
icon = new ImageIcon(image);
productModel.addElement("Product 1", icon);
productModel.addElement("Product 2", icon);
productModel.addElement("Product 3", icon);
productModel.addElement("Product 4", icon);
productModel.addElement("Product 5", icon);
productModel.addElement("Product 6", icon);
productModel.addElement("Product 7", icon);
productModel.addElement("Product 8", icon);
productModel.addElement("Product 9", icon);
productModel.addElement("Product 10", icon);
// 添加滚动面板并隐藏滚动条
JScrollPane scrollPane = new JScrollPane(productList);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.getVerticalScrollBar().setPreferredSize(new Dimension(0, 0));
scrollPane.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
scrollPane.getViewport().setPreferredSize(new Dimension(200, 250));
scrollPane.setBorder(BorderFactory.createEmptyBorder());
// 添加滚轮监听器
scrollPane.addMouseWheelListener(e -> {
JScrollBar bar = scrollPane.getVerticalScrollBar();
int amount = e.getUnitsToScroll() * bar.getUnitIncrement();
bar.setValue(bar.getValue() + amount);
});
// 添加滚动面板到窗口
setContentPane(scrollPane);
setVisible(true);
}
public static void main(String[] args) {
new ProductListGUI();
}
}
```
在这个例子中,我们使用了JList和DefaultListModel来创建商品列表。我们还使用了ImageIcon和Image来添加自定义图标,并使用了JScrollPane来创建带有滚动条的滚动面板。通过设置垂直和水平滚动条的策略以及调整视口大小和边框,我们成功地隐藏了滚动条。最后,我们添加了一个滚轮监听器,使用户可以使用鼠标滚轮控制下滑。