我如何在JSCrollpane上使用Jcombobox的Jframe
基本上,我尝试在此处向我的代码添加一个下拉列表。尽管每当我尝试又一个接一个地添加一个时,它最终会超越它。如果我在滚动前运行下拉菜单,则将滚动放在顶部,反之亦然。我有点是Jframes,在Java中绘画,所以请忍受我。
MyFrame类:
import java.awt.BorderLayout;
import java.awt.FontFormatException;
import java.io.IOException;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
@SuppressWarnings("serial")
public class MyFrame extends JFrame {
public void cadetImage() throws FontFormatException, IOException {
JPanel panel = new Puller();
JScrollPane scroll = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
String[] opts = { "All", "A", "B", "C", "D", "E", "F" };
JComboBox<String> dropdown = new JComboBox<>(opts);
setTitle("Puller");
scroll.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
add(dropdown, BorderLayout.CENTER);
add(scroll, BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setSize(500, 500);
setLocationRelativeTo(null);
setVisible(true);
setExtendedState(MAXIMIZED_BOTH);
}
}
Puller类:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Puller extends JPanel {
private int pw, ph;
private Font rso;
public Puller() throws FontFormatException, IOException {
InputStream is = new FileInputStream("assets/fonts/racing sans one.ttf");
Dimension screen = new Dimension(Toolkit.getDefaultToolkit().getScreenSize());
pw = (int) screen.getWidth();
ph = (int) screen.getHeight();
setPreferredSize(new Dimension(pw - 20, ph - 30));
rso = Font.createFont(Font.TRUETYPE_FONT, is);
}
@Override
public void paint(Graphics p) {
Graphics2D page = (Graphics2D) p;
template(page);
}
private void template(Graphics2D page) {
page.setColor(Color.decode("#666666"));
page.fillRect(0, 0, pw, ph);
// Name Header
page.setColor(Color.BLACK);
page.fillRect(997, 122, 311, 90);
page.setColor(Color.decode("#bf9000"));
page.fillRect(1000, 125, 305, 84);
page.setColor(Color.BLACK);
page.setFont(rso.deriveFont(Font.BOLD, 75f));
page.drawString("NAME", 1052, 193);
// Filter Field
page.setColor(Color.BLACK);
page.fillRect(997, 212, 70, 50);
page.setColor(Color.decode("#666666"));
page.fillRect(1000, 212, 64, 47);
}
}
无论我获得什么帮助,都将不胜感激。
Basically I'm try to add a dropdown to my code here. Although whenever I try to add one after the other, it ends up overtaking it. If I run the dropdown before the scroll then I get the scroll on top and vice versa. I'm kinda new to JFrames and drawing in Java so please bear with me.
MyFrame Class:
import java.awt.BorderLayout;
import java.awt.FontFormatException;
import java.io.IOException;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JViewport;
@SuppressWarnings("serial")
public class MyFrame extends JFrame {
public void cadetImage() throws FontFormatException, IOException {
JPanel panel = new Puller();
JScrollPane scroll = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
String[] opts = { "All", "A", "B", "C", "D", "E", "F" };
JComboBox<String> dropdown = new JComboBox<>(opts);
setTitle("Puller");
scroll.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
add(dropdown, BorderLayout.CENTER);
add(scroll, BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setSize(500, 500);
setLocationRelativeTo(null);
setVisible(true);
setExtendedState(MAXIMIZED_BOTH);
}
}
Puller Class:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Puller extends JPanel {
private int pw, ph;
private Font rso;
public Puller() throws FontFormatException, IOException {
InputStream is = new FileInputStream("assets/fonts/racing sans one.ttf");
Dimension screen = new Dimension(Toolkit.getDefaultToolkit().getScreenSize());
pw = (int) screen.getWidth();
ph = (int) screen.getHeight();
setPreferredSize(new Dimension(pw - 20, ph - 30));
rso = Font.createFont(Font.TRUETYPE_FONT, is);
}
@Override
public void paint(Graphics p) {
Graphics2D page = (Graphics2D) p;
template(page);
}
private void template(Graphics2D page) {
page.setColor(Color.decode("#666666"));
page.fillRect(0, 0, pw, ph);
// Name Header
page.setColor(Color.BLACK);
page.fillRect(997, 122, 311, 90);
page.setColor(Color.decode("#bf9000"));
page.fillRect(1000, 125, 305, 84);
page.setColor(Color.BLACK);
page.setFont(rso.deriveFont(Font.BOLD, 75f));
page.drawString("NAME", 1052, 193);
// Filter Field
page.setColor(Color.BLACK);
page.fillRect(997, 212, 70, 50);
page.setColor(Color.decode("#666666"));
page.fillRect(1000, 212, 64, 47);
}
}
Whatever help I can get would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论